﻿2026-06-15T13:33:59.2734009Z ##[group]Run ./traceable-reqs check --json
2026-06-15T13:33:59.2734368Z [36;1m./traceable-reqs check --json[0m
2026-06-15T13:33:59.2747263Z shell: /usr/bin/bash -e {0}
2026-06-15T13:33:59.2747535Z ##[endgroup]
2026-06-15T13:33:59.3303482Z {
2026-06-15T13:33:59.3303998Z   "schemaVersion": 1,
2026-06-15T13:33:59.3304322Z   "summary": {
2026-06-15T13:33:59.3304771Z     "requirementCount": 212,
2026-06-15T13:33:59.3305205Z     "completeCount": 212,
2026-06-15T13:33:59.3305658Z     "incompleteCount": 0,
2026-06-15T13:33:59.3306494Z     "findingCount": 0
2026-06-15T13:33:59.3306902Z   },
2026-06-15T13:33:59.3307278Z   "requirements": [
2026-06-15T13:33:59.3307702Z     {
2026-06-15T13:33:59.3308099Z       "id": "REQ-API-1",
2026-06-15T13:33:59.3308685Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T13:33:59.3309373Z       "requiredStages": [
2026-06-15T13:33:59.3309713Z         "impl",
2026-06-15T13:33:59.3310031Z         "unit",
2026-06-15T13:33:59.3310332Z         "int"
2026-06-15T13:33:59.3310675Z       ],
2026-06-15T13:33:59.3310971Z       "stages": {
2026-06-15T13:33:59.3311291Z         "doc": {
2026-06-15T13:33:59.3311624Z           "complete": false,
2026-06-15T13:33:59.3311987Z           "evidence": []
2026-06-15T13:33:59.3312339Z         },
2026-06-15T13:33:59.3312647Z         "impl": {
2026-06-15T13:33:59.3312989Z           "complete": true,
2026-06-15T13:33:59.3313338Z           "evidence": [
2026-06-15T13:33:59.3313671Z             {
2026-06-15T13:33:59.3314028Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.3314458Z               "line": 15
2026-06-15T13:33:59.3314788Z             }
2026-06-15T13:33:59.3315095Z           ]
2026-06-15T13:33:59.3315402Z         },
2026-06-15T13:33:59.3315707Z         "int": {
2026-06-15T13:33:59.3316022Z           "complete": true,
2026-06-15T13:33:59.3316381Z           "evidence": [
2026-06-15T13:33:59.3316714Z             {
2026-06-15T13:33:59.3317087Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3317539Z               "line": 13
2026-06-15T13:33:59.3317862Z             }
2026-06-15T13:33:59.3318162Z           ]
2026-06-15T13:33:59.3318459Z         },
2026-06-15T13:33:59.3318759Z         "unit": {
2026-06-15T13:33:59.3319173Z           "complete": true,
2026-06-15T13:33:59.3319535Z           "evidence": [
2026-06-15T13:33:59.3319889Z             {
2026-06-15T13:33:59.3320245Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.3320668Z               "line": 480
2026-06-15T13:33:59.3321006Z             },
2026-06-15T13:33:59.3321330Z             {
2026-06-15T13:33:59.3321674Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.3322102Z               "line": 518
2026-06-15T13:33:59.3322432Z             },
2026-06-15T13:33:59.3322737Z             {
2026-06-15T13:33:59.3323078Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.3323507Z               "line": 586
2026-06-15T13:33:59.3323845Z             }
2026-06-15T13:33:59.3324146Z           ]
2026-06-15T13:33:59.3324431Z         }
2026-06-15T13:33:59.3324723Z       }
2026-06-15T13:33:59.3324998Z     },
2026-06-15T13:33:59.3325289Z     {
2026-06-15T13:33:59.3325593Z       "id": "REQ-API-2",
2026-06-15T13:33:59.3326135Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T13:33:59.3326712Z       "requiredStages": [
2026-06-15T13:33:59.3327055Z         "impl",
2026-06-15T13:33:59.3327374Z         "unit",
2026-06-15T13:33:59.3327680Z         "int"
2026-06-15T13:33:59.3327995Z       ],
2026-06-15T13:33:59.3328296Z       "stages": {
2026-06-15T13:33:59.3328628Z         "doc": {
2026-06-15T13:33:59.3329033Z           "complete": false,
2026-06-15T13:33:59.3329433Z           "evidence": []
2026-06-15T13:33:59.3329795Z         },
2026-06-15T13:33:59.3330105Z         "impl": {
2026-06-15T13:33:59.3330444Z           "complete": true,
2026-06-15T13:33:59.3330805Z           "evidence": [
2026-06-15T13:33:59.3331132Z             {
2026-06-15T13:33:59.3331800Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.3332252Z               "line": 17
2026-06-15T13:33:59.3332591Z             },
2026-06-15T13:33:59.3332901Z             {
2026-06-15T13:33:59.3333278Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.3333715Z               "line": 20
2026-06-15T13:33:59.3334052Z             },
2026-06-15T13:33:59.3334343Z             {
2026-06-15T13:33:59.3334710Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.3335321Z               "line": 142
2026-06-15T13:33:59.3335669Z             },
2026-06-15T13:33:59.3335979Z             {
2026-06-15T13:33:59.3336353Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3336809Z               "line": 24
2026-06-15T13:33:59.3337176Z             },
2026-06-15T13:33:59.3337496Z             {
2026-06-15T13:33:59.3337864Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3338296Z               "line": 41
2026-06-15T13:33:59.3338639Z             },
2026-06-15T13:33:59.3339030Z             {
2026-06-15T13:33:59.3339387Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3339822Z               "line": 209
2026-06-15T13:33:59.3340160Z             },
2026-06-15T13:33:59.3340457Z             {
2026-06-15T13:33:59.3340823Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3341256Z               "line": 251
2026-06-15T13:33:59.3341592Z             },
2026-06-15T13:33:59.3341902Z             {
2026-06-15T13:33:59.3342254Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3342694Z               "line": 330
2026-06-15T13:33:59.3343028Z             },
2026-06-15T13:33:59.3343319Z             {
2026-06-15T13:33:59.3343676Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3344099Z               "line": 17
2026-06-15T13:33:59.3344440Z             },
2026-06-15T13:33:59.3344745Z             {
2026-06-15T13:33:59.3345107Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3345528Z               "line": 30
2026-06-15T13:33:59.3345876Z             },
2026-06-15T13:33:59.3346128Z             {
2026-06-15T13:33:59.3346357Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3346647Z               "line": 63
2026-06-15T13:33:59.3346885Z             },
2026-06-15T13:33:59.3347097Z             {
2026-06-15T13:33:59.3347335Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3347627Z               "line": 77
2026-06-15T13:33:59.3347847Z             }
2026-06-15T13:33:59.3348051Z           ]
2026-06-15T13:33:59.3348252Z         },
2026-06-15T13:33:59.3348457Z         "int": {
2026-06-15T13:33:59.3348681Z           "complete": true,
2026-06-15T13:33:59.3348933Z           "evidence": [
2026-06-15T13:33:59.3349234Z             {
2026-06-15T13:33:59.3349486Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3349787Z               "line": 14
2026-06-15T13:33:59.3350024Z             },
2026-06-15T13:33:59.3350229Z             {
2026-06-15T13:33:59.3350482Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3350777Z               "line": 187
2026-06-15T13:33:59.3351012Z             }
2026-06-15T13:33:59.3351211Z           ]
2026-06-15T13:33:59.3351420Z         },
2026-06-15T13:33:59.3351623Z         "unit": {
2026-06-15T13:33:59.3351849Z           "complete": true,
2026-06-15T13:33:59.3352100Z           "evidence": [
2026-06-15T13:33:59.3352324Z             {
2026-06-15T13:33:59.3352572Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.3352863Z               "line": 82
2026-06-15T13:33:59.3353081Z             },
2026-06-15T13:33:59.3353287Z             {
2026-06-15T13:33:59.3353531Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.3353802Z               "line": 279
2026-06-15T13:33:59.3354031Z             },
2026-06-15T13:33:59.3354236Z             {
2026-06-15T13:33:59.3354636Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3354934Z               "line": 585
2026-06-15T13:33:59.3355182Z             },
2026-06-15T13:33:59.3355396Z             {
2026-06-15T13:33:59.3355658Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3355953Z               "line": 596
2026-06-15T13:33:59.3356178Z             },
2026-06-15T13:33:59.3356398Z             {
2026-06-15T13:33:59.3356659Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3357076Z               "line": 749
2026-06-15T13:33:59.3357311Z             },
2026-06-15T13:33:59.3357524Z             {
2026-06-15T13:33:59.3357782Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3358083Z               "line": 795
2026-06-15T13:33:59.3358311Z             },
2026-06-15T13:33:59.3358516Z             {
2026-06-15T13:33:59.3358769Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3359131Z               "line": 143
2026-06-15T13:33:59.3359370Z             },
2026-06-15T13:33:59.3359590Z             {
2026-06-15T13:33:59.3359832Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3360145Z               "line": 187
2026-06-15T13:33:59.3360375Z             }
2026-06-15T13:33:59.3360580Z           ]
2026-06-15T13:33:59.3360784Z         }
2026-06-15T13:33:59.3360980Z       }
2026-06-15T13:33:59.3361171Z     },
2026-06-15T13:33:59.3361372Z     {
2026-06-15T13:33:59.3361596Z       "id": "REQ-API-3",
2026-06-15T13:33:59.3361930Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T13:33:59.3362268Z       "requiredStages": [
2026-06-15T13:33:59.3362509Z         "impl",
2026-06-15T13:33:59.3362726Z         "unit",
2026-06-15T13:33:59.3362937Z         "int"
2026-06-15T13:33:59.3363146Z       ],
2026-06-15T13:33:59.3363356Z       "stages": {
2026-06-15T13:33:59.3363586Z         "doc": {
2026-06-15T13:33:59.3363815Z           "complete": false,
2026-06-15T13:33:59.3364195Z           "evidence": []
2026-06-15T13:33:59.3364567Z         },
2026-06-15T13:33:59.3364872Z         "impl": {
2026-06-15T13:33:59.3365224Z           "complete": true,
2026-06-15T13:33:59.3365584Z           "evidence": [
2026-06-15T13:33:59.3365936Z             {
2026-06-15T13:33:59.3366314Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.3366747Z               "line": 27
2026-06-15T13:33:59.3367091Z             },
2026-06-15T13:33:59.3367391Z             {
2026-06-15T13:33:59.3367777Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3368222Z               "line": 442
2026-06-15T13:33:59.3368624Z             }
2026-06-15T13:33:59.3369172Z           ]
2026-06-15T13:33:59.3369691Z         },
2026-06-15T13:33:59.3370145Z         "int": {
2026-06-15T13:33:59.3370686Z           "complete": true,
2026-06-15T13:33:59.3371183Z           "evidence": [
2026-06-15T13:33:59.3371678Z             {
2026-06-15T13:33:59.3372198Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3372870Z               "line": 261
2026-06-15T13:33:59.3401801Z             }
2026-06-15T13:33:59.3402164Z           ]
2026-06-15T13:33:59.3402458Z         },
2026-06-15T13:33:59.3402762Z         "unit": {
2026-06-15T13:33:59.3403092Z           "complete": true,
2026-06-15T13:33:59.3403455Z           "evidence": [
2026-06-15T13:33:59.3403779Z             {
2026-06-15T13:33:59.3404155Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.3404598Z               "line": 280
2026-06-15T13:33:59.3404976Z             },
2026-06-15T13:33:59.3405286Z             {
2026-06-15T13:33:59.3405668Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3406112Z               "line": 824
2026-06-15T13:33:59.3406450Z             }
2026-06-15T13:33:59.3406746Z           ]
2026-06-15T13:33:59.3407051Z         }
2026-06-15T13:33:59.3407352Z       }
2026-06-15T13:33:59.3407641Z     },
2026-06-15T13:33:59.3407939Z     {
2026-06-15T13:33:59.3408259Z       "id": "REQ-ARCH-1",
2026-06-15T13:33:59.3423212Z       "title": "Many small acyclically-layered crates",
2026-06-15T13:33:59.3423583Z       "requiredStages": [
2026-06-15T13:33:59.3423830Z         "impl"
2026-06-15T13:33:59.3424046Z       ],
2026-06-15T13:33:59.3424246Z       "stages": {
2026-06-15T13:33:59.3424469Z         "doc": {
2026-06-15T13:33:59.3424689Z           "complete": false,
2026-06-15T13:33:59.3424952Z           "evidence": []
2026-06-15T13:33:59.3425181Z         },
2026-06-15T13:33:59.3425394Z         "impl": {
2026-06-15T13:33:59.3425818Z           "complete": true,
2026-06-15T13:33:59.3426064Z           "evidence": [
2026-06-15T13:33:59.3426288Z             {
2026-06-15T13:33:59.3426546Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T13:33:59.3426832Z               "line": 18
2026-06-15T13:33:59.3427055Z             },
2026-06-15T13:33:59.3427266Z             {
2026-06-15T13:33:59.3427518Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T13:33:59.3427810Z               "line": 12
2026-06-15T13:33:59.3428048Z             },
2026-06-15T13:33:59.3428252Z             {
2026-06-15T13:33:59.3428491Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T13:33:59.3428776Z               "line": 12
2026-06-15T13:33:59.3429074Z             }
2026-06-15T13:33:59.3429278Z           ]
2026-06-15T13:33:59.3429484Z         },
2026-06-15T13:33:59.3429685Z         "int": {
2026-06-15T13:33:59.3429898Z           "complete": false,
2026-06-15T13:33:59.3430156Z           "evidence": []
2026-06-15T13:33:59.3430390Z         },
2026-06-15T13:33:59.3430595Z         "unit": {
2026-06-15T13:33:59.3430823Z           "complete": false,
2026-06-15T13:33:59.3431072Z           "evidence": []
2026-06-15T13:33:59.3431285Z         }
2026-06-15T13:33:59.3431483Z       }
2026-06-15T13:33:59.3431670Z     },
2026-06-15T13:33:59.3431854Z     {
2026-06-15T13:33:59.3432056Z       "id": "REQ-ARCH-2",
2026-06-15T13:33:59.3432394Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T13:33:59.3432756Z       "requiredStages": [
2026-06-15T13:33:59.3432986Z         "impl"
2026-06-15T13:33:59.3433186Z       ],
2026-06-15T13:33:59.3433396Z       "stages": {
2026-06-15T13:33:59.3433606Z         "doc": {
2026-06-15T13:33:59.3433826Z           "complete": false,
2026-06-15T13:33:59.3434071Z           "evidence": []
2026-06-15T13:33:59.3434301Z         },
2026-06-15T13:33:59.3434505Z         "impl": {
2026-06-15T13:33:59.3434734Z           "complete": true,
2026-06-15T13:33:59.3434982Z           "evidence": [
2026-06-15T13:33:59.3435211Z             {
2026-06-15T13:33:59.3435465Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T13:33:59.3435746Z               "line": 18
2026-06-15T13:33:59.3435973Z             }
2026-06-15T13:33:59.3436179Z           ]
2026-06-15T13:33:59.3436383Z         },
2026-06-15T13:33:59.3436590Z         "int": {
2026-06-15T13:33:59.3436820Z           "complete": false,
2026-06-15T13:33:59.3437062Z           "evidence": []
2026-06-15T13:33:59.3437296Z         },
2026-06-15T13:33:59.3437497Z         "unit": {
2026-06-15T13:33:59.3437726Z           "complete": false,
2026-06-15T13:33:59.3437978Z           "evidence": []
2026-06-15T13:33:59.3438202Z         }
2026-06-15T13:33:59.3438403Z       }
2026-06-15T13:33:59.3438603Z     },
2026-06-15T13:33:59.3438797Z     {
2026-06-15T13:33:59.3439098Z       "id": "REQ-ARCH-3",
2026-06-15T13:33:59.3439467Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T13:33:59.3439867Z       "requiredStages": [
2026-06-15T13:33:59.3440115Z         "impl",
2026-06-15T13:33:59.3440321Z         "unit"
2026-06-15T13:33:59.3440531Z       ],
2026-06-15T13:33:59.3440726Z       "stages": {
2026-06-15T13:33:59.3440950Z         "doc": {
2026-06-15T13:33:59.3441179Z           "complete": false,
2026-06-15T13:33:59.3441436Z           "evidence": []
2026-06-15T13:33:59.3441660Z         },
2026-06-15T13:33:59.3441874Z         "impl": {
2026-06-15T13:33:59.3442100Z           "complete": true,
2026-06-15T13:33:59.3442487Z           "evidence": [
2026-06-15T13:33:59.3442710Z             {
2026-06-15T13:33:59.3442978Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:33:59.3443278Z               "line": 34
2026-06-15T13:33:59.3443517Z             },
2026-06-15T13:33:59.3443727Z             {
2026-06-15T13:33:59.3443989Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:33:59.3444289Z               "line": 41
2026-06-15T13:33:59.3444518Z             }
2026-06-15T13:33:59.3444828Z           ]
2026-06-15T13:33:59.3445032Z         },
2026-06-15T13:33:59.3445237Z         "int": {
2026-06-15T13:33:59.3445475Z           "complete": false,
2026-06-15T13:33:59.3445729Z           "evidence": []
2026-06-15T13:33:59.3445957Z         },
2026-06-15T13:33:59.3446157Z         "unit": {
2026-06-15T13:33:59.3446392Z           "complete": true,
2026-06-15T13:33:59.3446635Z           "evidence": [
2026-06-15T13:33:59.3446857Z             {
2026-06-15T13:33:59.3447117Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:33:59.3447423Z               "line": 51
2026-06-15T13:33:59.3447647Z             },
2026-06-15T13:33:59.3447861Z             {
2026-06-15T13:33:59.3448122Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:33:59.3448414Z               "line": 71
2026-06-15T13:33:59.3448639Z             },
2026-06-15T13:33:59.3448838Z             {
2026-06-15T13:33:59.3449168Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T13:33:59.3449473Z               "line": 83
2026-06-15T13:33:59.3449700Z             }
2026-06-15T13:33:59.3449915Z           ]
2026-06-15T13:33:59.3450107Z         }
2026-06-15T13:33:59.3450304Z       }
2026-06-15T13:33:59.3450490Z     },
2026-06-15T13:33:59.3450689Z     {
2026-06-15T13:33:59.3450905Z       "id": "REQ-ARCH-4",
2026-06-15T13:33:59.3451252Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T13:33:59.3451629Z       "requiredStages": [
2026-06-15T13:33:59.3451872Z         "impl",
2026-06-15T13:33:59.3452078Z         "unit"
2026-06-15T13:33:59.3452291Z       ],
2026-06-15T13:33:59.3452490Z       "stages": {
2026-06-15T13:33:59.3452713Z         "doc": {
2026-06-15T13:33:59.3452937Z           "complete": false,
2026-06-15T13:33:59.3453190Z           "evidence": []
2026-06-15T13:33:59.3453419Z         },
2026-06-15T13:33:59.3453623Z         "impl": {
2026-06-15T13:33:59.3453848Z           "complete": true,
2026-06-15T13:33:59.3454091Z           "evidence": [
2026-06-15T13:33:59.3454326Z             {
2026-06-15T13:33:59.3454592Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3454882Z               "line": 157
2026-06-15T13:33:59.3455115Z             },
2026-06-15T13:33:59.3455320Z             {
2026-06-15T13:33:59.3455573Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3455868Z               "line": 180
2026-06-15T13:33:59.3456107Z             },
2026-06-15T13:33:59.3456322Z             {
2026-06-15T13:33:59.3456589Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3456886Z               "line": 200
2026-06-15T13:33:59.3457113Z             },
2026-06-15T13:33:59.3457323Z             {
2026-06-15T13:33:59.3457579Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3457868Z               "line": 215
2026-06-15T13:33:59.3458096Z             },
2026-06-15T13:33:59.3458298Z             {
2026-06-15T13:33:59.3458546Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3458841Z               "line": 265
2026-06-15T13:33:59.3459394Z             }
2026-06-15T13:33:59.3459608Z           ]
2026-06-15T13:33:59.3459805Z         },
2026-06-15T13:33:59.3460009Z         "int": {
2026-06-15T13:33:59.3460237Z           "complete": false,
2026-06-15T13:33:59.3460484Z           "evidence": []
2026-06-15T13:33:59.3460712Z         },
2026-06-15T13:33:59.3460911Z         "unit": {
2026-06-15T13:33:59.3461150Z           "complete": true,
2026-06-15T13:33:59.3461499Z           "evidence": [
2026-06-15T13:33:59.3461728Z             {
2026-06-15T13:33:59.3461980Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3462275Z               "line": 326
2026-06-15T13:33:59.3462504Z             },
2026-06-15T13:33:59.3462706Z             {
2026-06-15T13:33:59.3462946Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3463244Z               "line": 336
2026-06-15T13:33:59.3463473Z             },
2026-06-15T13:33:59.3463689Z             {
2026-06-15T13:33:59.3464051Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3464341Z               "line": 347
2026-06-15T13:33:59.3464571Z             },
2026-06-15T13:33:59.3464780Z             {
2026-06-15T13:33:59.3465037Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3465342Z               "line": 358
2026-06-15T13:33:59.3465573Z             },
2026-06-15T13:33:59.3465775Z             {
2026-06-15T13:33:59.3466028Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3466324Z               "line": 370
2026-06-15T13:33:59.3466553Z             },
2026-06-15T13:33:59.3466753Z             {
2026-06-15T13:33:59.3466991Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3467287Z               "line": 383
2026-06-15T13:33:59.3467526Z             },
2026-06-15T13:33:59.3467726Z             {
2026-06-15T13:33:59.3467977Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3468266Z               "line": 394
2026-06-15T13:33:59.3468505Z             },
2026-06-15T13:33:59.3468714Z             {
2026-06-15T13:33:59.3469044Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3469334Z               "line": 411
2026-06-15T13:33:59.3469572Z             },
2026-06-15T13:33:59.3469778Z             {
2026-06-15T13:33:59.3470026Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.3470313Z               "line": 539
2026-06-15T13:33:59.3470550Z             }
2026-06-15T13:33:59.3470746Z           ]
2026-06-15T13:33:59.3470949Z         }
2026-06-15T13:33:59.3471152Z       }
2026-06-15T13:33:59.3471339Z     },
2026-06-15T13:33:59.3471538Z     {
2026-06-15T13:33:59.3471744Z       "id": "REQ-CLI-1",
2026-06-15T13:33:59.3473141Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T13:33:59.3474400Z       "requiredStages": [
2026-06-15T13:33:59.3474644Z         "impl",
2026-06-15T13:33:59.3474859Z         "unit"
2026-06-15T13:33:59.3475068Z       ],
2026-06-15T13:33:59.3475283Z       "stages": {
2026-06-15T13:33:59.3475508Z         "doc": {
2026-06-15T13:33:59.3475746Z           "complete": false,
2026-06-15T13:33:59.3476008Z           "evidence": []
2026-06-15T13:33:59.3476245Z         },
2026-06-15T13:33:59.3476450Z         "impl": {
2026-06-15T13:33:59.3476683Z           "complete": true,
2026-06-15T13:33:59.3476931Z           "evidence": [
2026-06-15T13:33:59.3477161Z             {
2026-06-15T13:33:59.3477409Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3477691Z               "line": 225
2026-06-15T13:33:59.3477923Z             },
2026-06-15T13:33:59.3478138Z             {
2026-06-15T13:33:59.3478391Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3478671Z               "line": 984
2026-06-15T13:33:59.3478935Z             },
2026-06-15T13:33:59.3479202Z             {
2026-06-15T13:33:59.3479441Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3479723Z               "line": 1512
2026-06-15T13:33:59.3479957Z             },
2026-06-15T13:33:59.3480160Z             {
2026-06-15T13:33:59.3480395Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3480786Z               "line": 2719
2026-06-15T13:33:59.3481019Z             }
2026-06-15T13:33:59.3481226Z           ]
2026-06-15T13:33:59.3481428Z         },
2026-06-15T13:33:59.3481623Z         "int": {
2026-06-15T13:33:59.3481856Z           "complete": false,
2026-06-15T13:33:59.3482103Z           "evidence": []
2026-06-15T13:33:59.3482328Z         },
2026-06-15T13:33:59.3482533Z         "unit": {
2026-06-15T13:33:59.3482761Z           "complete": true,
2026-06-15T13:33:59.3483004Z           "evidence": [
2026-06-15T13:33:59.3483342Z             {
2026-06-15T13:33:59.3483586Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3483868Z               "line": 6493
2026-06-15T13:33:59.3484095Z             }
2026-06-15T13:33:59.3484302Z           ]
2026-06-15T13:33:59.3484499Z         }
2026-06-15T13:33:59.3484694Z       }
2026-06-15T13:33:59.3484889Z     },
2026-06-15T13:33:59.3485081Z     {
2026-06-15T13:33:59.3485299Z       "id": "REQ-CLI-2",
2026-06-15T13:33:59.3486214Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T13:33:59.3487101Z       "requiredStages": [
2026-06-15T13:33:59.3487344Z         "impl",
2026-06-15T13:33:59.3487553Z         "unit"
2026-06-15T13:33:59.3487764Z       ],
2026-06-15T13:33:59.3487965Z       "stages": {
2026-06-15T13:33:59.3488192Z         "doc": {
2026-06-15T13:33:59.3488426Z           "complete": false,
2026-06-15T13:33:59.3488679Z           "evidence": []
2026-06-15T13:33:59.3488895Z         },
2026-06-15T13:33:59.3489178Z         "impl": {
2026-06-15T13:33:59.3489401Z           "complete": true,
2026-06-15T13:33:59.3489645Z           "evidence": [
2026-06-15T13:33:59.3489887Z             {
2026-06-15T13:33:59.3490144Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3490455Z               "line": 345
2026-06-15T13:33:59.3490688Z             },
2026-06-15T13:33:59.3490893Z             {
2026-06-15T13:33:59.3491156Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:33:59.3491443Z               "line": 78
2026-06-15T13:33:59.3491675Z             },
2026-06-15T13:33:59.3491889Z             {
2026-06-15T13:33:59.3492155Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.3492454Z               "line": 239
2026-06-15T13:33:59.3492692Z             },
2026-06-15T13:33:59.3492906Z             {
2026-06-15T13:33:59.3493150Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3493432Z               "line": 419
2026-06-15T13:33:59.3493660Z             },
2026-06-15T13:33:59.3493870Z             {
2026-06-15T13:33:59.3494109Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3494395Z               "line": 1067
2026-06-15T13:33:59.3494636Z             },
2026-06-15T13:33:59.3506158Z             {
2026-06-15T13:33:59.3506468Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3506772Z               "line": 1707
2026-06-15T13:33:59.3507020Z             },
2026-06-15T13:33:59.3507230Z             {
2026-06-15T13:33:59.3507470Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3507766Z               "line": 1786
2026-06-15T13:33:59.3507992Z             },
2026-06-15T13:33:59.3508208Z             {
2026-06-15T13:33:59.3508451Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3508756Z               "line": 1847
2026-06-15T13:33:59.3509061Z             }
2026-06-15T13:33:59.3509274Z           ]
2026-06-15T13:33:59.3509480Z         },
2026-06-15T13:33:59.3509681Z         "int": {
2026-06-15T13:33:59.3509909Z           "complete": false,
2026-06-15T13:33:59.3510166Z           "evidence": []
2026-06-15T13:33:59.3510399Z         },
2026-06-15T13:33:59.3510596Z         "unit": {
2026-06-15T13:33:59.3510811Z           "complete": true,
2026-06-15T13:33:59.3511202Z           "evidence": [
2026-06-15T13:33:59.3511427Z             {
2026-06-15T13:33:59.3511689Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.3511995Z               "line": 309
2026-06-15T13:33:59.3512214Z             },
2026-06-15T13:33:59.3512428Z             {
2026-06-15T13:33:59.3512666Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3512939Z               "line": 6631
2026-06-15T13:33:59.3513171Z             }
2026-06-15T13:33:59.3513364Z           ]
2026-06-15T13:33:59.3513665Z         }
2026-06-15T13:33:59.3513856Z       }
2026-06-15T13:33:59.3514046Z     },
2026-06-15T13:33:59.3514246Z     {
2026-06-15T13:33:59.3514461Z       "id": "REQ-CLI-3",
2026-06-15T13:33:59.3515386Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T13:33:59.3516293Z       "requiredStages": [
2026-06-15T13:33:59.3516542Z         "impl",
2026-06-15T13:33:59.3516756Z         "unit"
2026-06-15T13:33:59.3516965Z       ],
2026-06-15T13:33:59.3517171Z       "stages": {
2026-06-15T13:33:59.3517367Z         "doc": {
2026-06-15T13:33:59.3517599Z           "complete": false,
2026-06-15T13:33:59.3517857Z           "evidence": []
2026-06-15T13:33:59.3518082Z         },
2026-06-15T13:33:59.3518292Z         "impl": {
2026-06-15T13:33:59.3518523Z           "complete": true,
2026-06-15T13:33:59.3518782Z           "evidence": [
2026-06-15T13:33:59.3519072Z             {
2026-06-15T13:33:59.3519321Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3519607Z               "line": 978
2026-06-15T13:33:59.3519834Z             }
2026-06-15T13:33:59.3520045Z           ]
2026-06-15T13:33:59.3520260Z         },
2026-06-15T13:33:59.3520464Z         "int": {
2026-06-15T13:33:59.3520684Z           "complete": false,
2026-06-15T13:33:59.3520940Z           "evidence": []
2026-06-15T13:33:59.3521156Z         },
2026-06-15T13:33:59.3521348Z         "unit": {
2026-06-15T13:33:59.3521582Z           "complete": true,
2026-06-15T13:33:59.3521820Z           "evidence": [
2026-06-15T13:33:59.3522043Z             {
2026-06-15T13:33:59.3522283Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3522569Z               "line": 6458
2026-06-15T13:33:59.3522798Z             }
2026-06-15T13:33:59.3522998Z           ]
2026-06-15T13:33:59.3523203Z         }
2026-06-15T13:33:59.3523404Z       }
2026-06-15T13:33:59.3523603Z     },
2026-06-15T13:33:59.3523798Z     {
2026-06-15T13:33:59.3524014Z       "id": "REQ-CONSENT-1",
2026-06-15T13:33:59.3525149Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T13:33:59.3526216Z       "requiredStages": [
2026-06-15T13:33:59.3526463Z         "impl",
2026-06-15T13:33:59.3526682Z         "unit"
2026-06-15T13:33:59.3526895Z       ],
2026-06-15T13:33:59.3527092Z       "stages": {
2026-06-15T13:33:59.3527312Z         "doc": {
2026-06-15T13:33:59.3527549Z           "complete": false,
2026-06-15T13:33:59.3527802Z           "evidence": []
2026-06-15T13:33:59.3528031Z         },
2026-06-15T13:33:59.3528227Z         "impl": {
2026-06-15T13:33:59.3528460Z           "complete": true,
2026-06-15T13:33:59.3528708Z           "evidence": [
2026-06-15T13:33:59.3528938Z             {
2026-06-15T13:33:59.3529251Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3529537Z               "line": 27
2026-06-15T13:33:59.3529765Z             },
2026-06-15T13:33:59.3529966Z             {
2026-06-15T13:33:59.3530215Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3530506Z               "line": 75
2026-06-15T13:33:59.3530882Z             },
2026-06-15T13:33:59.3531091Z             {
2026-06-15T13:33:59.3531353Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3531646Z               "line": 98
2026-06-15T13:33:59.3531871Z             },
2026-06-15T13:33:59.3532080Z             {
2026-06-15T13:33:59.3532342Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3532627Z               "line": 82
2026-06-15T13:33:59.3532847Z             },
2026-06-15T13:33:59.3533171Z             {
2026-06-15T13:33:59.3533430Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3533726Z               "line": 109
2026-06-15T13:33:59.3533954Z             },
2026-06-15T13:33:59.3534153Z             {
2026-06-15T13:33:59.3534396Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3534690Z               "line": 127
2026-06-15T13:33:59.3534918Z             },
2026-06-15T13:33:59.3535123Z             {
2026-06-15T13:33:59.3535381Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3535677Z               "line": 142
2026-06-15T13:33:59.3535915Z             },
2026-06-15T13:33:59.3536119Z             {
2026-06-15T13:33:59.3536363Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3536640Z               "line": 6045
2026-06-15T13:33:59.3536876Z             }
2026-06-15T13:33:59.3537080Z           ]
2026-06-15T13:33:59.3537281Z         },
2026-06-15T13:33:59.3537485Z         "int": {
2026-06-15T13:33:59.3537723Z           "complete": false,
2026-06-15T13:33:59.3537981Z           "evidence": []
2026-06-15T13:33:59.3538206Z         },
2026-06-15T13:33:59.3538410Z         "unit": {
2026-06-15T13:33:59.3538634Z           "complete": true,
2026-06-15T13:33:59.3538882Z           "evidence": [
2026-06-15T13:33:59.3539211Z             {
2026-06-15T13:33:59.3539465Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3539758Z               "line": 334
2026-06-15T13:33:59.3540001Z             },
2026-06-15T13:33:59.3540207Z             {
2026-06-15T13:33:59.3540455Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3540746Z               "line": 380
2026-06-15T13:33:59.3540983Z             },
2026-06-15T13:33:59.3541193Z             {
2026-06-15T13:33:59.3541447Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3541748Z               "line": 391
2026-06-15T13:33:59.3541974Z             },
2026-06-15T13:33:59.3542182Z             {
2026-06-15T13:33:59.3542441Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3542731Z               "line": 165
2026-06-15T13:33:59.3542955Z             },
2026-06-15T13:33:59.3543159Z             {
2026-06-15T13:33:59.3543412Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3543703Z               "line": 184
2026-06-15T13:33:59.3543928Z             },
2026-06-15T13:33:59.3544137Z             {
2026-06-15T13:33:59.3544394Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T13:33:59.3544686Z               "line": 204
2026-06-15T13:33:59.3544913Z             },
2026-06-15T13:33:59.3545111Z             {
2026-06-15T13:33:59.3545346Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3545636Z               "line": 6811
2026-06-15T13:33:59.3545885Z             }
2026-06-15T13:33:59.3546098Z           ]
2026-06-15T13:33:59.3546298Z         }
2026-06-15T13:33:59.3546495Z       }
2026-06-15T13:33:59.3546689Z     },
2026-06-15T13:33:59.3546895Z     {
2026-06-15T13:33:59.3547115Z       "id": "REQ-CONSENT-2",
2026-06-15T13:33:59.3548198Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T13:33:59.3549290Z       "requiredStages": [
2026-06-15T13:33:59.3549653Z         "impl",
2026-06-15T13:33:59.3549866Z         "unit"
2026-06-15T13:33:59.3550077Z       ],
2026-06-15T13:33:59.3550285Z       "stages": {
2026-06-15T13:33:59.3550505Z         "doc": {
2026-06-15T13:33:59.3550734Z           "complete": false,
2026-06-15T13:33:59.3550983Z           "evidence": []
2026-06-15T13:33:59.3551219Z         },
2026-06-15T13:33:59.3551430Z         "impl": {
2026-06-15T13:33:59.3551659Z           "complete": true,
2026-06-15T13:33:59.3551912Z           "evidence": [
2026-06-15T13:33:59.3552256Z             {
2026-06-15T13:33:59.3552515Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3552804Z               "line": 140
2026-06-15T13:33:59.3553028Z             },
2026-06-15T13:33:59.3553248Z             {
2026-06-15T13:33:59.3553500Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3553806Z               "line": 165
2026-06-15T13:33:59.3554044Z             },
2026-06-15T13:33:59.3554249Z             {
2026-06-15T13:33:59.3554526Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3554822Z               "line": 199
2026-06-15T13:33:59.3555055Z             },
2026-06-15T13:33:59.3555274Z             {
2026-06-15T13:33:59.3555530Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3555820Z               "line": 241
2026-06-15T13:33:59.3556047Z             },
2026-06-15T13:33:59.3556263Z             {
2026-06-15T13:33:59.3556515Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3556812Z               "line": 269
2026-06-15T13:33:59.3557036Z             },
2026-06-15T13:33:59.3557245Z             {
2026-06-15T13:33:59.3557511Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3557812Z               "line": 300
2026-06-15T13:33:59.3558045Z             },
2026-06-15T13:33:59.3558261Z             {
2026-06-15T13:33:59.3558510Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3558801Z               "line": 5836
2026-06-15T13:33:59.3559107Z             },
2026-06-15T13:33:59.3559331Z             {
2026-06-15T13:33:59.3559578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3559864Z               "line": 5894
2026-06-15T13:33:59.3560102Z             }
2026-06-15T13:33:59.3560313Z           ]
2026-06-15T13:33:59.3560518Z         },
2026-06-15T13:33:59.3560721Z         "int": {
2026-06-15T13:33:59.3560965Z           "complete": false,
2026-06-15T13:33:59.3561227Z           "evidence": []
2026-06-15T13:33:59.3561479Z         },
2026-06-15T13:33:59.3561699Z         "unit": {
2026-06-15T13:33:59.3561933Z           "complete": true,
2026-06-15T13:33:59.3562177Z           "evidence": [
2026-06-15T13:33:59.3562400Z             {
2026-06-15T13:33:59.3562657Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3562967Z               "line": 419
2026-06-15T13:33:59.3563199Z             },
2026-06-15T13:33:59.3563417Z             {
2026-06-15T13:33:59.3563683Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3563993Z               "line": 436
2026-06-15T13:33:59.3564232Z             },
2026-06-15T13:33:59.3564442Z             {
2026-06-15T13:33:59.3564704Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3565010Z               "line": 472
2026-06-15T13:33:59.3565239Z             },
2026-06-15T13:33:59.3565458Z             {
2026-06-15T13:33:59.3565712Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.3566024Z               "line": 516
2026-06-15T13:33:59.3566264Z             },
2026-06-15T13:33:59.3566480Z             {
2026-06-15T13:33:59.3566714Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3567009Z               "line": 7957
2026-06-15T13:33:59.3567247Z             },
2026-06-15T13:33:59.3567462Z             {
2026-06-15T13:33:59.3567701Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3568006Z               "line": 8039
2026-06-15T13:33:59.3568359Z             }
2026-06-15T13:33:59.3568576Z           ]
2026-06-15T13:33:59.3568783Z         }
2026-06-15T13:33:59.3569065Z       }
2026-06-15T13:33:59.3569266Z     },
2026-06-15T13:33:59.3569470Z     {
2026-06-15T13:33:59.3569686Z       "id": "REQ-CONSENT-3",
2026-06-15T13:33:59.3571982Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-15T13:33:59.3573962Z       "requiredStages": [
2026-06-15T13:33:59.3574210Z         "doc",
2026-06-15T13:33:59.3574445Z         "impl",
2026-06-15T13:33:59.3574669Z         "unit",
2026-06-15T13:33:59.3574882Z         "int"
2026-06-15T13:33:59.3575093Z       ],
2026-06-15T13:33:59.3575304Z       "stages": {
2026-06-15T13:33:59.3575526Z         "doc": {
2026-06-15T13:33:59.3575750Z           "complete": true,
2026-06-15T13:33:59.3576004Z           "evidence": [
2026-06-15T13:33:59.3576228Z             {
2026-06-15T13:33:59.3576469Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.3576735Z               "line": 284
2026-06-15T13:33:59.3576978Z             }
2026-06-15T13:33:59.3577178Z           ]
2026-06-15T13:33:59.3577378Z         },
2026-06-15T13:33:59.3577593Z         "impl": {
2026-06-15T13:33:59.3577836Z           "complete": true,
2026-06-15T13:33:59.3578083Z           "evidence": [
2026-06-15T13:33:59.3578312Z             {
2026-06-15T13:33:59.3578585Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.3578891Z               "line": 123
2026-06-15T13:33:59.3579226Z             },
2026-06-15T13:33:59.3579435Z             {
2026-06-15T13:33:59.3579696Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.3580001Z               "line": 162
2026-06-15T13:33:59.3580241Z             },
2026-06-15T13:33:59.3580456Z             {
2026-06-15T13:33:59.3580728Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.3581038Z               "line": 239
2026-06-15T13:33:59.3581256Z             },
2026-06-15T13:33:59.3581476Z             {
2026-06-15T13:33:59.3581734Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3582052Z               "line": 491
2026-06-15T13:33:59.3582289Z             },
2026-06-15T13:33:59.3582509Z             {
2026-06-15T13:33:59.3582762Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3583067Z               "line": 699
2026-06-15T13:33:59.3583306Z             },
2026-06-15T13:33:59.3583529Z             {
2026-06-15T13:33:59.3583777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3584068Z               "line": 5962
2026-06-15T13:33:59.3584306Z             }
2026-06-15T13:33:59.3584517Z           ]
2026-06-15T13:33:59.3584728Z         },
2026-06-15T13:33:59.3584943Z         "int": {
2026-06-15T13:33:59.3585171Z           "complete": true,
2026-06-15T13:33:59.3585414Z           "evidence": [
2026-06-15T13:33:59.3585639Z             {
2026-06-15T13:33:59.3585920Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T13:33:59.3586240Z               "line": 16
2026-06-15T13:33:59.3586469Z             }
2026-06-15T13:33:59.3586688Z           ]
2026-06-15T13:33:59.3586893Z         },
2026-06-15T13:33:59.3587106Z         "unit": {
2026-06-15T13:33:59.3587342Z           "complete": true,
2026-06-15T13:33:59.3587595Z           "evidence": [
2026-06-15T13:33:59.3587829Z             {
2026-06-15T13:33:59.3588097Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.3588406Z               "line": 624
2026-06-15T13:33:59.3588764Z             },
2026-06-15T13:33:59.3589046Z             {
2026-06-15T13:33:59.3589322Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.3589634Z               "line": 671
2026-06-15T13:33:59.3589866Z             },
2026-06-15T13:33:59.3590082Z             {
2026-06-15T13:33:59.3590339Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3590644Z               "line": 1016
2026-06-15T13:33:59.3590876Z             }
2026-06-15T13:33:59.3591220Z           ]
2026-06-15T13:33:59.3591420Z         }
2026-06-15T13:33:59.3591622Z       }
2026-06-15T13:33:59.3591826Z     },
2026-06-15T13:33:59.3592036Z     {
2026-06-15T13:33:59.3592266Z       "id": "REQ-CONV-1",
2026-06-15T13:33:59.3593924Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T13:33:59.3595359Z       "requiredStages": [
2026-06-15T13:33:59.3595617Z         "impl",
2026-06-15T13:33:59.3595841Z         "unit"
2026-06-15T13:33:59.3596061Z       ],
2026-06-15T13:33:59.3596275Z       "stages": {
2026-06-15T13:33:59.3596494Z         "doc": {
2026-06-15T13:33:59.3651103Z           "complete": false,
2026-06-15T13:33:59.3651714Z           "evidence": []
2026-06-15T13:33:59.3651971Z         },
2026-06-15T13:33:59.3652200Z         "impl": {
2026-06-15T13:33:59.3652435Z           "complete": true,
2026-06-15T13:33:59.3652687Z           "evidence": [
2026-06-15T13:33:59.3652919Z             {
2026-06-15T13:33:59.3653185Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3653509Z               "line": 787
2026-06-15T13:33:59.3653794Z             },
2026-06-15T13:33:59.3654009Z             {
2026-06-15T13:33:59.3654280Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.3654595Z               "line": 94
2026-06-15T13:33:59.3654825Z             },
2026-06-15T13:33:59.3655035Z             {
2026-06-15T13:33:59.3655312Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.3655622Z               "line": 345
2026-06-15T13:33:59.3655857Z             },
2026-06-15T13:33:59.3656073Z             {
2026-06-15T13:33:59.3656369Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.3656669Z               "line": 387
2026-06-15T13:33:59.3656903Z             },
2026-06-15T13:33:59.3657107Z             {
2026-06-15T13:33:59.3657370Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.3657664Z               "line": 472
2026-06-15T13:33:59.3657895Z             },
2026-06-15T13:33:59.3658102Z             {
2026-06-15T13:33:59.3658363Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3658663Z               "line": 667
2026-06-15T13:33:59.3658897Z             },
2026-06-15T13:33:59.3659202Z             {
2026-06-15T13:33:59.3659456Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3659750Z               "line": 693
2026-06-15T13:33:59.3659979Z             },
2026-06-15T13:33:59.3660184Z             {
2026-06-15T13:33:59.3660434Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.3660739Z               "line": 369
2026-06-15T13:33:59.3660964Z             },
2026-06-15T13:33:59.3661173Z             {
2026-06-15T13:33:59.3661436Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:33:59.3661721Z               "line": 19
2026-06-15T13:33:59.3661949Z             }
2026-06-15T13:33:59.3662141Z           ]
2026-06-15T13:33:59.3662342Z         },
2026-06-15T13:33:59.3662536Z         "int": {
2026-06-15T13:33:59.3662765Z           "complete": false,
2026-06-15T13:33:59.3663301Z           "evidence": []
2026-06-15T13:33:59.3663541Z         },
2026-06-15T13:33:59.3663735Z         "unit": {
2026-06-15T13:33:59.3663963Z           "complete": true,
2026-06-15T13:33:59.3664197Z           "evidence": [
2026-06-15T13:33:59.3664417Z             {
2026-06-15T13:33:59.3664665Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3664960Z               "line": 1263
2026-06-15T13:33:59.3665184Z             },
2026-06-15T13:33:59.3665399Z             {
2026-06-15T13:33:59.3665862Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:33:59.3666149Z               "line": 108
2026-06-15T13:33:59.3666380Z             },
2026-06-15T13:33:59.3666586Z             {
2026-06-15T13:33:59.3666843Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:33:59.3667129Z               "line": 134
2026-06-15T13:33:59.3667352Z             },
2026-06-15T13:33:59.3667558Z             {
2026-06-15T13:33:59.3667802Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T13:33:59.3668102Z               "line": 144
2026-06-15T13:33:59.3668325Z             }
2026-06-15T13:33:59.3668525Z           ]
2026-06-15T13:33:59.3668720Z         }
2026-06-15T13:33:59.3668908Z       }
2026-06-15T13:33:59.3669172Z     },
2026-06-15T13:33:59.3669843Z     {
2026-06-15T13:33:59.3670172Z       "id": "REQ-CONV-2",
2026-06-15T13:33:59.3671967Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T13:33:59.3673406Z       "requiredStages": [
2026-06-15T13:33:59.3673706Z         "impl",
2026-06-15T13:33:59.3673960Z         "unit"
2026-06-15T13:33:59.3674216Z       ],
2026-06-15T13:33:59.3674456Z       "stages": {
2026-06-15T13:33:59.3674737Z         "doc": {
2026-06-15T13:33:59.3675014Z           "complete": false,
2026-06-15T13:33:59.3675324Z           "evidence": []
2026-06-15T13:33:59.3675606Z         },
2026-06-15T13:33:59.3675859Z         "impl": {
2026-06-15T13:33:59.3676136Z           "complete": true,
2026-06-15T13:33:59.3676437Z           "evidence": [
2026-06-15T13:33:59.3676704Z             {
2026-06-15T13:33:59.3677030Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3677418Z               "line": 359
2026-06-15T13:33:59.3677704Z             },
2026-06-15T13:33:59.3677956Z             {
2026-06-15T13:33:59.3678275Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.3678590Z               "line": 119
2026-06-15T13:33:59.3678818Z             },
2026-06-15T13:33:59.3679104Z             {
2026-06-15T13:33:59.3679366Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.3679684Z               "line": 789
2026-06-15T13:33:59.3679917Z             },
2026-06-15T13:33:59.3680116Z             {
2026-06-15T13:33:59.3680390Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.3680694Z               "line": 800
2026-06-15T13:33:59.3680929Z             },
2026-06-15T13:33:59.3681128Z             {
2026-06-15T13:33:59.3681385Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.3681690Z               "line": 334
2026-06-15T13:33:59.3681920Z             },
2026-06-15T13:33:59.3682133Z             {
2026-06-15T13:33:59.3682378Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3682655Z               "line": 2672
2026-06-15T13:33:59.3682880Z             },
2026-06-15T13:33:59.3683089Z             {
2026-06-15T13:33:59.3683327Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3683618Z               "line": 2688
2026-06-15T13:33:59.3683852Z             },
2026-06-15T13:33:59.3684053Z             {
2026-06-15T13:33:59.3684291Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3684837Z               "line": 2747
2026-06-15T13:33:59.3685065Z             }
2026-06-15T13:33:59.3685269Z           ]
2026-06-15T13:33:59.3685470Z         },
2026-06-15T13:33:59.3685675Z         "int": {
2026-06-15T13:33:59.3685913Z           "complete": false,
2026-06-15T13:33:59.3686152Z           "evidence": []
2026-06-15T13:33:59.3686381Z         },
2026-06-15T13:33:59.3686585Z         "unit": {
2026-06-15T13:33:59.3686867Z           "complete": true,
2026-06-15T13:33:59.3687240Z           "evidence": [
2026-06-15T13:33:59.3687467Z             {
2026-06-15T13:33:59.3687725Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3688030Z               "line": 889
2026-06-15T13:33:59.3688259Z             },
2026-06-15T13:33:59.3688463Z             {
2026-06-15T13:33:59.3688721Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3689102Z               "line": 1014
2026-06-15T13:33:59.3689336Z             },
2026-06-15T13:33:59.3689528Z             {
2026-06-15T13:33:59.3689801Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.3690105Z               "line": 215
2026-06-15T13:33:59.3690329Z             }
2026-06-15T13:33:59.3690520Z           ]
2026-06-15T13:33:59.3690720Z         }
2026-06-15T13:33:59.3690916Z       }
2026-06-15T13:33:59.3691102Z     },
2026-06-15T13:33:59.3691302Z     {
2026-06-15T13:33:59.3691517Z       "id": "REQ-DAEMON-1",
2026-06-15T13:33:59.3691832Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T13:33:59.3692226Z       "requiredStages": [
2026-06-15T13:33:59.3692462Z         "impl",
2026-06-15T13:33:59.3692668Z         "unit",
2026-06-15T13:33:59.3692886Z         "int"
2026-06-15T13:33:59.3693092Z       ],
2026-06-15T13:33:59.3693291Z       "stages": {
2026-06-15T13:33:59.3693507Z         "doc": {
2026-06-15T13:33:59.3693736Z           "complete": false,
2026-06-15T13:33:59.3693988Z           "evidence": []
2026-06-15T13:33:59.3694216Z         },
2026-06-15T13:33:59.3694422Z         "impl": {
2026-06-15T13:33:59.3694642Z           "complete": true,
2026-06-15T13:33:59.3694889Z           "evidence": [
2026-06-15T13:33:59.3695117Z             {
2026-06-15T13:33:59.3695369Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3695654Z               "line": 12
2026-06-15T13:33:59.3695882Z             },
2026-06-15T13:33:59.3696101Z             {
2026-06-15T13:33:59.3696364Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3696678Z               "line": 16
2026-06-15T13:33:59.3696899Z             },
2026-06-15T13:33:59.3697108Z             {
2026-06-15T13:33:59.3697365Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3697660Z               "line": 259
2026-06-15T13:33:59.3697895Z             },
2026-06-15T13:33:59.3698107Z             {
2026-06-15T13:33:59.3698356Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:33:59.3698642Z               "line": 15
2026-06-15T13:33:59.3698872Z             },
2026-06-15T13:33:59.3699153Z             {
2026-06-15T13:33:59.3699390Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T13:33:59.3699783Z               "line": 13
2026-06-15T13:33:59.3700295Z             }
2026-06-15T13:33:59.3700612Z           ]
2026-06-15T13:33:59.3700899Z         },
2026-06-15T13:33:59.3701242Z         "int": {
2026-06-15T13:33:59.3701561Z           "complete": true,
2026-06-15T13:33:59.3701948Z           "evidence": [
2026-06-15T13:33:59.3702272Z             {
2026-06-15T13:33:59.3702621Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:33:59.3703055Z               "line": 32
2026-06-15T13:33:59.3703358Z             }
2026-06-15T13:33:59.3703647Z           ]
2026-06-15T13:33:59.3703870Z         },
2026-06-15T13:33:59.3704000Z         "unit": {
2026-06-15T13:33:59.3704180Z           "complete": true,
2026-06-15T13:33:59.3704367Z           "evidence": [
2026-06-15T13:33:59.3704596Z             {
2026-06-15T13:33:59.3704873Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3705020Z               "line": 285
2026-06-15T13:33:59.3705207Z             },
2026-06-15T13:33:59.3705329Z             {
2026-06-15T13:33:59.3705526Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3705753Z               "line": 293
2026-06-15T13:33:59.3705887Z             },
2026-06-15T13:33:59.3706065Z             {
2026-06-15T13:33:59.3706238Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3706515Z               "line": 309
2026-06-15T13:33:59.3706738Z             },
2026-06-15T13:33:59.3706876Z             {
2026-06-15T13:33:59.3707081Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3707220Z               "line": 317
2026-06-15T13:33:59.3707367Z             },
2026-06-15T13:33:59.3707539Z             {
2026-06-15T13:33:59.3707783Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3707968Z               "line": 609
2026-06-15T13:33:59.3708098Z             },
2026-06-15T13:33:59.3708244Z             {
2026-06-15T13:33:59.3708465Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3708667Z               "line": 679
2026-06-15T13:33:59.3708783Z             },
2026-06-15T13:33:59.3709050Z             {
2026-06-15T13:33:59.3709250Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:33:59.3709432Z               "line": 106
2026-06-15T13:33:59.3709631Z             },
2026-06-15T13:33:59.3709755Z             {
2026-06-15T13:33:59.3709960Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T13:33:59.3710113Z               "line": 132
2026-06-15T13:33:59.3710280Z             }
2026-06-15T13:33:59.3710470Z           ]
2026-06-15T13:33:59.3710599Z         }
2026-06-15T13:33:59.3710756Z       }
2026-06-15T13:33:59.3710884Z     },
2026-06-15T13:33:59.3711093Z     {
2026-06-15T13:33:59.3711292Z       "id": "REQ-DAEMON-2",
2026-06-15T13:33:59.3711501Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T13:33:59.3711684Z       "requiredStages": [
2026-06-15T13:33:59.3711812Z         "impl",
2026-06-15T13:33:59.3712022Z         "unit",
2026-06-15T13:33:59.3712154Z         "int"
2026-06-15T13:33:59.3712327Z       ],
2026-06-15T13:33:59.3712483Z       "stages": {
2026-06-15T13:33:59.3712618Z         "doc": {
2026-06-15T13:33:59.3712832Z           "complete": true,
2026-06-15T13:33:59.3712985Z           "evidence": [
2026-06-15T13:33:59.3713152Z             {
2026-06-15T13:33:59.3713337Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T13:33:59.3713558Z               "line": 250
2026-06-15T13:33:59.3713742Z             }
2026-06-15T13:33:59.3713880Z           ]
2026-06-15T13:33:59.3714035Z         },
2026-06-15T13:33:59.3714169Z         "impl": {
2026-06-15T13:33:59.3714364Z           "complete": true,
2026-06-15T13:33:59.3714561Z           "evidence": [
2026-06-15T13:33:59.3714702Z             {
2026-06-15T13:33:59.3714927Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3715055Z               "line": 23
2026-06-15T13:33:59.3715228Z             },
2026-06-15T13:33:59.3715341Z             {
2026-06-15T13:33:59.3715598Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3715767Z               "line": 795
2026-06-15T13:33:59.3715895Z             },
2026-06-15T13:33:59.3716073Z             {
2026-06-15T13:33:59.3716233Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3716466Z               "line": 820
2026-06-15T13:33:59.3716630Z             },
2026-06-15T13:33:59.3716779Z             {
2026-06-15T13:33:59.3716983Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3717113Z               "line": 1026
2026-06-15T13:33:59.3717326Z             },
2026-06-15T13:33:59.3717460Z             {
2026-06-15T13:33:59.3717685Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3717856Z               "line": 32
2026-06-15T13:33:59.3718085Z             },
2026-06-15T13:33:59.3718324Z             {
2026-06-15T13:33:59.3718542Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3718706Z               "line": 549
2026-06-15T13:33:59.3718829Z             },
2026-06-15T13:33:59.3719058Z             {
2026-06-15T13:33:59.3719310Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3719457Z               "line": 1055
2026-06-15T13:33:59.3719619Z             },
2026-06-15T13:33:59.3719852Z             {
2026-06-15T13:33:59.3720039Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3720278Z               "line": 1342
2026-06-15T13:33:59.3720411Z             },
2026-06-15T13:33:59.3720569Z             {
2026-06-15T13:33:59.3720740Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:33:59.3720889Z               "line": 11
2026-06-15T13:33:59.3721073Z             },
2026-06-15T13:33:59.3721242Z             {
2026-06-15T13:33:59.3721444Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3721587Z               "line": 146
2026-06-15T13:33:59.3721738Z             },
2026-06-15T13:33:59.3721915Z             {
2026-06-15T13:33:59.3722134Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3722268Z               "line": 274
2026-06-15T13:33:59.3722428Z             },
2026-06-15T13:33:59.3722587Z             {
2026-06-15T13:33:59.3722797Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3722982Z               "line": 13
2026-06-15T13:33:59.3723111Z             },
2026-06-15T13:33:59.3723273Z             {
2026-06-15T13:33:59.3723503Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3723669Z               "line": 27
2026-06-15T13:33:59.3723846Z             },
2026-06-15T13:33:59.3723974Z             {
2026-06-15T13:33:59.3724189Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3724340Z               "line": 130
2026-06-15T13:33:59.3724534Z             },
2026-06-15T13:33:59.3724710Z             {
2026-06-15T13:33:59.3724877Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3725058Z               "line": 537
2026-06-15T13:33:59.3725183Z             },
2026-06-15T13:33:59.3725369Z             {
2026-06-15T13:33:59.3725591Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3725731Z               "line": 705
2026-06-15T13:33:59.3725906Z             },
2026-06-15T13:33:59.3726041Z             {
2026-06-15T13:33:59.3726274Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3726427Z               "line": 849
2026-06-15T13:33:59.3726584Z             },
2026-06-15T13:33:59.3726751Z             {
2026-06-15T13:33:59.3726930Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3727110Z               "line": 936
2026-06-15T13:33:59.3727257Z             },
2026-06-15T13:33:59.3727416Z             {
2026-06-15T13:33:59.3727606Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3727782Z               "line": 982
2026-06-15T13:33:59.3727969Z             },
2026-06-15T13:33:59.3728115Z             {
2026-06-15T13:33:59.3728340Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:33:59.3728473Z               "line": 10
2026-06-15T13:33:59.3728641Z             }
2026-06-15T13:33:59.3728826Z           ]
2026-06-15T13:33:59.3729035Z         },
2026-06-15T13:33:59.3729213Z         "int": {
2026-06-15T13:33:59.3729355Z           "complete": true,
2026-06-15T13:33:59.3729528Z           "evidence": [
2026-06-15T13:33:59.3729642Z             {
2026-06-15T13:33:59.3729899Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T13:33:59.3730089Z               "line": 17
2026-06-15T13:33:59.3730209Z             },
2026-06-15T13:33:59.3730365Z             {
2026-06-15T13:33:59.3730533Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:33:59.3730890Z               "line": 71
2026-06-15T13:33:59.3731013Z             },
2026-06-15T13:33:59.3731172Z             {
2026-06-15T13:33:59.3731376Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:33:59.3731501Z               "line": 91
2026-06-15T13:33:59.3731719Z             },
2026-06-15T13:33:59.3731849Z             {
2026-06-15T13:33:59.3732057Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:33:59.3732217Z               "line": 167
2026-06-15T13:33:59.3732451Z             },
2026-06-15T13:33:59.3732664Z             {
2026-06-15T13:33:59.3732851Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:33:59.3733023Z               "line": 209
2026-06-15T13:33:59.3733152Z             },
2026-06-15T13:33:59.3733318Z             {
2026-06-15T13:33:59.3733575Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T13:33:59.3733715Z               "line": 128
2026-06-15T13:33:59.3733871Z             },
2026-06-15T13:33:59.3734001Z             {
2026-06-15T13:33:59.3734219Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:33:59.3734439Z               "line": 59
2026-06-15T13:33:59.3734568Z             }
2026-06-15T13:33:59.3734716Z           ]
2026-06-15T13:33:59.3734857Z         },
2026-06-15T13:33:59.3735014Z         "unit": {
2026-06-15T13:33:59.3735188Z           "complete": true,
2026-06-15T13:33:59.3735371Z           "evidence": [
2026-06-15T13:33:59.3735527Z             {
2026-06-15T13:33:59.3735719Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:33:59.3735865Z               "line": 62
2026-06-15T13:33:59.3736043Z             },
2026-06-15T13:33:59.3736214Z             {
2026-06-15T13:33:59.3736390Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:33:59.3736578Z               "line": 76
2026-06-15T13:33:59.3736728Z             },
2026-06-15T13:33:59.3736888Z             {
2026-06-15T13:33:59.3737106Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T13:33:59.3737240Z               "line": 88
2026-06-15T13:33:59.3737414Z             },
2026-06-15T13:33:59.3737557Z             {
2026-06-15T13:33:59.3737769Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.3737947Z               "line": 294
2026-06-15T13:33:59.3738089Z             },
2026-06-15T13:33:59.3738252Z             {
2026-06-15T13:33:59.3738428Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3738624Z               "line": 771
2026-06-15T13:33:59.3738801Z             },
2026-06-15T13:33:59.3739023Z             {
2026-06-15T13:33:59.3739225Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3739352Z               "line": 779
2026-06-15T13:33:59.3739544Z             },
2026-06-15T13:33:59.3739687Z             {
2026-06-15T13:33:59.3739896Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3740060Z               "line": 796
2026-06-15T13:33:59.3740188Z             },
2026-06-15T13:33:59.3740372Z             {
2026-06-15T13:33:59.3740554Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3740739Z               "line": 850
2026-06-15T13:33:59.3740906Z             },
2026-06-15T13:33:59.3741036Z             {
2026-06-15T13:33:59.3741263Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3741422Z               "line": 1053
2026-06-15T13:33:59.3741583Z             },
2026-06-15T13:33:59.3741708Z             {
2026-06-15T13:33:59.3741917Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3742113Z               "line": 1065
2026-06-15T13:33:59.3742266Z             },
2026-06-15T13:33:59.3742418Z             {
2026-06-15T13:33:59.3742597Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:33:59.3742773Z               "line": 110
2026-06-15T13:33:59.3742963Z             },
2026-06-15T13:33:59.3743115Z             {
2026-06-15T13:33:59.3743326Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:33:59.3743573Z               "line": 143
2026-06-15T13:33:59.3743741Z             }
2026-06-15T13:33:59.3743863Z           ]
2026-06-15T13:33:59.3744088Z         }
2026-06-15T13:33:59.3744251Z       }
2026-06-15T13:33:59.3744369Z     },
2026-06-15T13:33:59.3744537Z     {
2026-06-15T13:33:59.3744665Z       "id": "REQ-DAEMON-3",
2026-06-15T13:33:59.3744971Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T13:33:59.3745114Z       "requiredStages": [
2026-06-15T13:33:59.3745380Z         "impl",
2026-06-15T13:33:59.3745556Z         "unit",
2026-06-15T13:33:59.3745663Z         "int"
2026-06-15T13:33:59.3745888Z       ],
2026-06-15T13:33:59.3746021Z       "stages": {
2026-06-15T13:33:59.3746198Z         "doc": {
2026-06-15T13:33:59.3746349Z           "complete": false,
2026-06-15T13:33:59.3746499Z           "evidence": []
2026-06-15T13:33:59.3746707Z         },
2026-06-15T13:33:59.3746846Z         "impl": {
2026-06-15T13:33:59.3747036Z           "complete": true,
2026-06-15T13:33:59.3747175Z           "evidence": [
2026-06-15T13:33:59.3747327Z             {
2026-06-15T13:33:59.3747589Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3747733Z               "line": 14
2026-06-15T13:33:59.3747899Z             },
2026-06-15T13:33:59.3748022Z             {
2026-06-15T13:33:59.3748221Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:33:59.3748382Z               "line": 11
2026-06-15T13:33:59.3748559Z             },
2026-06-15T13:33:59.3748741Z             {
2026-06-15T13:33:59.3748912Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.3749193Z               "line": 270
2026-06-15T13:33:59.3749366Z             },
2026-06-15T13:33:59.3749556Z             {
2026-06-15T13:33:59.3749718Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3749889Z               "line": 1705
2026-06-15T13:33:59.3750028Z             },
2026-06-15T13:33:59.3750204Z             {
2026-06-15T13:33:59.3750433Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3750576Z               "line": 3791
2026-06-15T13:33:59.3750739Z             },
2026-06-15T13:33:59.3750880Z             {
2026-06-15T13:33:59.3751072Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3751271Z               "line": 3812
2026-06-15T13:33:59.3751400Z             }
2026-06-15T13:33:59.3751557Z           ]
2026-06-15T13:33:59.3751682Z         },
2026-06-15T13:33:59.3758592Z         "int": {
2026-06-15T13:33:59.3758762Z           "complete": true,
2026-06-15T13:33:59.3758894Z           "evidence": [
2026-06-15T13:33:59.3759077Z             {
2026-06-15T13:33:59.3759253Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3759373Z               "line": 49
2026-06-15T13:33:59.3759481Z             },
2026-06-15T13:33:59.3759586Z             {
2026-06-15T13:33:59.3759744Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.3759862Z               "line": 439
2026-06-15T13:33:59.3759973Z             }
2026-06-15T13:33:59.3760077Z           ]
2026-06-15T13:33:59.3760182Z         },
2026-06-15T13:33:59.3760288Z         "unit": {
2026-06-15T13:33:59.3760416Z           "complete": true,
2026-06-15T13:33:59.3760526Z           "evidence": [
2026-06-15T13:33:59.3760627Z             {
2026-06-15T13:33:59.3760783Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3760894Z               "line": 767
2026-06-15T13:33:59.3760998Z             },
2026-06-15T13:33:59.3761117Z             {
2026-06-15T13:33:59.3761256Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3761355Z               "line": 9041
2026-06-15T13:33:59.3761454Z             }
2026-06-15T13:33:59.3761555Z           ]
2026-06-15T13:33:59.3761660Z         }
2026-06-15T13:33:59.3761754Z       }
2026-06-15T13:33:59.3761860Z     },
2026-06-15T13:33:59.3761955Z     {
2026-06-15T13:33:59.3762078Z       "id": "REQ-DAEMON-4",
2026-06-15T13:33:59.3762233Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T13:33:59.3762528Z       "requiredStages": [
2026-06-15T13:33:59.3762637Z         "impl",
2026-06-15T13:33:59.3762727Z         "unit",
2026-06-15T13:33:59.3762833Z         "int"
2026-06-15T13:33:59.3762937Z       ],
2026-06-15T13:33:59.3763042Z       "stages": {
2026-06-15T13:33:59.3763143Z         "doc": {
2026-06-15T13:33:59.3763261Z           "complete": false,
2026-06-15T13:33:59.3763371Z           "evidence": []
2026-06-15T13:33:59.3763473Z         },
2026-06-15T13:33:59.3763680Z         "impl": {
2026-06-15T13:33:59.3763794Z           "complete": true,
2026-06-15T13:33:59.3763903Z           "evidence": [
2026-06-15T13:33:59.3764007Z             {
2026-06-15T13:33:59.3764160Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3764269Z               "line": 414
2026-06-15T13:33:59.3764369Z             },
2026-06-15T13:33:59.3764466Z             {
2026-06-15T13:33:59.3764607Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3764723Z               "line": 479
2026-06-15T13:33:59.3764827Z             },
2026-06-15T13:33:59.3764926Z             {
2026-06-15T13:33:59.3765085Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3765185Z               "line": 501
2026-06-15T13:33:59.3765284Z             }
2026-06-15T13:33:59.3765390Z           ]
2026-06-15T13:33:59.3765480Z         },
2026-06-15T13:33:59.3765590Z         "int": {
2026-06-15T13:33:59.3765705Z           "complete": true,
2026-06-15T13:33:59.3765818Z           "evidence": [
2026-06-15T13:33:59.3765923Z             {
2026-06-15T13:33:59.3766087Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:33:59.3766205Z               "line": 37
2026-06-15T13:33:59.3766306Z             }
2026-06-15T13:33:59.3766402Z           ]
2026-06-15T13:33:59.3766504Z         },
2026-06-15T13:33:59.3766609Z         "unit": {
2026-06-15T13:33:59.3766714Z           "complete": true,
2026-06-15T13:33:59.3766826Z           "evidence": [
2026-06-15T13:33:59.3766936Z             {
2026-06-15T13:33:59.3767085Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.3767203Z               "line": 428
2026-06-15T13:33:59.3767304Z             },
2026-06-15T13:33:59.3767409Z             {
2026-06-15T13:33:59.3767560Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3767680Z               "line": 907
2026-06-15T13:33:59.3767784Z             },
2026-06-15T13:33:59.3767885Z             {
2026-06-15T13:33:59.3768047Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3768152Z               "line": 977
2026-06-15T13:33:59.3768258Z             },
2026-06-15T13:33:59.3768357Z             {
2026-06-15T13:33:59.3768505Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3768620Z               "line": 1007
2026-06-15T13:33:59.3768724Z             },
2026-06-15T13:33:59.3768829Z             {
2026-06-15T13:33:59.3769067Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3769190Z               "line": 1040
2026-06-15T13:33:59.3769290Z             }
2026-06-15T13:33:59.3769393Z           ]
2026-06-15T13:33:59.3769498Z         }
2026-06-15T13:33:59.3769599Z       }
2026-06-15T13:33:59.3769703Z     },
2026-06-15T13:33:59.3769798Z     {
2026-06-15T13:33:59.3769923Z       "id": "REQ-DAEMON-5",
2026-06-15T13:33:59.3771425Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T13:33:59.3771558Z       "requiredStages": [
2026-06-15T13:33:59.3771663Z         "impl",
2026-06-15T13:33:59.3771764Z         "unit"
2026-06-15T13:33:59.3771986Z       ],
2026-06-15T13:33:59.3772086Z       "stages": {
2026-06-15T13:33:59.3772187Z         "doc": {
2026-06-15T13:33:59.3772310Z           "complete": false,
2026-06-15T13:33:59.3772416Z           "evidence": []
2026-06-15T13:33:59.3772516Z         },
2026-06-15T13:33:59.3772624Z         "impl": {
2026-06-15T13:33:59.3772745Z           "complete": true,
2026-06-15T13:33:59.3772849Z           "evidence": [
2026-06-15T13:33:59.3772949Z             {
2026-06-15T13:33:59.3773126Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3773326Z               "line": 476
2026-06-15T13:33:59.3773431Z             },
2026-06-15T13:33:59.3773526Z             {
2026-06-15T13:33:59.3773685Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3773798Z               "line": 769
2026-06-15T13:33:59.3773893Z             },
2026-06-15T13:33:59.3773999Z             {
2026-06-15T13:33:59.3774151Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3774269Z               "line": 782
2026-06-15T13:33:59.3774369Z             },
2026-06-15T13:33:59.3774468Z             {
2026-06-15T13:33:59.3774619Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3774720Z               "line": 800
2026-06-15T13:33:59.3774820Z             },
2026-06-15T13:33:59.3774920Z             {
2026-06-15T13:33:59.3775058Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3775167Z               "line": 841
2026-06-15T13:33:59.3775273Z             }
2026-06-15T13:33:59.3775378Z           ]
2026-06-15T13:33:59.3775478Z         },
2026-06-15T13:33:59.3775578Z         "int": {
2026-06-15T13:33:59.3775698Z           "complete": false,
2026-06-15T13:33:59.3775816Z           "evidence": []
2026-06-15T13:33:59.3775912Z         },
2026-06-15T13:33:59.3776022Z         "unit": {
2026-06-15T13:33:59.3776135Z           "complete": true,
2026-06-15T13:33:59.3776251Z           "evidence": [
2026-06-15T13:33:59.3776360Z             {
2026-06-15T13:33:59.3776503Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3776618Z               "line": 1189
2026-06-15T13:33:59.3776717Z             },
2026-06-15T13:33:59.3776823Z             {
2026-06-15T13:33:59.3776981Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3777093Z               "line": 1213
2026-06-15T13:33:59.3777203Z             },
2026-06-15T13:33:59.3777302Z             {
2026-06-15T13:33:59.3777448Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.3777568Z               "line": 1239
2026-06-15T13:33:59.3777678Z             }
2026-06-15T13:33:59.3777787Z           ]
2026-06-15T13:33:59.3777879Z         }
2026-06-15T13:33:59.3777983Z       }
2026-06-15T13:33:59.3778082Z     },
2026-06-15T13:33:59.3778184Z     {
2026-06-15T13:33:59.3778288Z       "id": "REQ-DAEMON-6",
2026-06-15T13:33:59.3780378Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T13:33:59.3780516Z       "requiredStages": [
2026-06-15T13:33:59.3780620Z         "impl",
2026-06-15T13:33:59.3780721Z         "unit"
2026-06-15T13:33:59.3780821Z       ],
2026-06-15T13:33:59.3780925Z       "stages": {
2026-06-15T13:33:59.3781031Z         "doc": {
2026-06-15T13:33:59.3781150Z           "complete": false,
2026-06-15T13:33:59.3781269Z           "evidence": []
2026-06-15T13:33:59.3781365Z         },
2026-06-15T13:33:59.3781470Z         "impl": {
2026-06-15T13:33:59.3781700Z           "complete": true,
2026-06-15T13:33:59.3781803Z           "evidence": [
2026-06-15T13:33:59.3781903Z             {
2026-06-15T13:33:59.3782057Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3782175Z               "line": 426
2026-06-15T13:33:59.3782276Z             },
2026-06-15T13:33:59.3782377Z             {
2026-06-15T13:33:59.3782523Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3782631Z               "line": 457
2026-06-15T13:33:59.3782842Z             },
2026-06-15T13:33:59.3782942Z             {
2026-06-15T13:33:59.3783090Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3783194Z               "line": 55
2026-06-15T13:33:59.3783296Z             },
2026-06-15T13:33:59.3783400Z             {
2026-06-15T13:33:59.3783547Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3783662Z               "line": 70
2026-06-15T13:33:59.3783762Z             },
2026-06-15T13:33:59.3783876Z             {
2026-06-15T13:33:59.3784011Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3784124Z               "line": 1759
2026-06-15T13:33:59.3784225Z             },
2026-06-15T13:33:59.3784330Z             {
2026-06-15T13:33:59.3784473Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3784588Z               "line": 1785
2026-06-15T13:33:59.3784687Z             }
2026-06-15T13:33:59.3784791Z           ]
2026-06-15T13:33:59.3784886Z         },
2026-06-15T13:33:59.3784995Z         "int": {
2026-06-15T13:33:59.3785108Z           "complete": false,
2026-06-15T13:33:59.3785208Z           "evidence": []
2026-06-15T13:33:59.3785309Z         },
2026-06-15T13:33:59.3785413Z         "unit": {
2026-06-15T13:33:59.3785518Z           "complete": true,
2026-06-15T13:33:59.3785633Z           "evidence": [
2026-06-15T13:33:59.3785742Z             {
2026-06-15T13:33:59.3785886Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3786009Z               "line": 288
2026-06-15T13:33:59.3786109Z             },
2026-06-15T13:33:59.3786215Z             {
2026-06-15T13:33:59.3786362Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3786467Z               "line": 299
2026-06-15T13:33:59.3786563Z             },
2026-06-15T13:33:59.3786663Z             {
2026-06-15T13:33:59.3786812Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3786911Z               "line": 325
2026-06-15T13:33:59.3787015Z             },
2026-06-15T13:33:59.3787131Z             {
2026-06-15T13:33:59.3787272Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3787378Z               "line": 351
2026-06-15T13:33:59.3787484Z             }
2026-06-15T13:33:59.3787592Z           ]
2026-06-15T13:33:59.3787691Z         }
2026-06-15T13:33:59.3787796Z       }
2026-06-15T13:33:59.3787895Z     },
2026-06-15T13:33:59.3787999Z     {
2026-06-15T13:33:59.3788109Z       "id": "REQ-DAEMON-7",
2026-06-15T13:33:59.3789644Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T13:33:59.3789774Z       "requiredStages": [
2026-06-15T13:33:59.3789892Z         "impl",
2026-06-15T13:33:59.3789994Z         "unit"
2026-06-15T13:33:59.3790098Z       ],
2026-06-15T13:33:59.3790201Z       "stages": {
2026-06-15T13:33:59.3790306Z         "doc": {
2026-06-15T13:33:59.3790424Z           "complete": false,
2026-06-15T13:33:59.3790542Z           "evidence": []
2026-06-15T13:33:59.3790642Z         },
2026-06-15T13:33:59.3790753Z         "impl": {
2026-06-15T13:33:59.3790871Z           "complete": true,
2026-06-15T13:33:59.3791091Z           "evidence": [
2026-06-15T13:33:59.3791195Z             {
2026-06-15T13:33:59.3791344Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3791457Z               "line": 476
2026-06-15T13:33:59.3791552Z             },
2026-06-15T13:33:59.3791659Z             {
2026-06-15T13:33:59.3791819Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.3791930Z               "line": 601
2026-06-15T13:33:59.3792034Z             },
2026-06-15T13:33:59.3792221Z             {
2026-06-15T13:33:59.3792373Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3792488Z               "line": 89
2026-06-15T13:33:59.3792589Z             },
2026-06-15T13:33:59.3792696Z             {
2026-06-15T13:33:59.3792821Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3792932Z               "line": 1706
2026-06-15T13:33:59.3793035Z             }
2026-06-15T13:33:59.3793134Z           ]
2026-06-15T13:33:59.3793245Z         },
2026-06-15T13:33:59.3793350Z         "int": {
2026-06-15T13:33:59.3793473Z           "complete": false,
2026-06-15T13:33:59.3793584Z           "evidence": []
2026-06-15T13:33:59.3793693Z         },
2026-06-15T13:33:59.3793792Z         "unit": {
2026-06-15T13:33:59.3793913Z           "complete": true,
2026-06-15T13:33:59.3794026Z           "evidence": [
2026-06-15T13:33:59.3794127Z             {
2026-06-15T13:33:59.3794275Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3794393Z               "line": 314
2026-06-15T13:33:59.3794490Z             },
2026-06-15T13:33:59.3794594Z             {
2026-06-15T13:33:59.3794737Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3794843Z               "line": 6631
2026-06-15T13:33:59.3794937Z             }
2026-06-15T13:33:59.3795037Z           ]
2026-06-15T13:33:59.3795139Z         }
2026-06-15T13:33:59.3795247Z       }
2026-06-15T13:33:59.3795341Z     },
2026-06-15T13:33:59.3795441Z     {
2026-06-15T13:33:59.3795564Z       "id": "REQ-DAEMON-8",
2026-06-15T13:33:59.3796574Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T13:33:59.3796684Z       "requiredStages": [
2026-06-15T13:33:59.3796785Z         "impl",
2026-06-15T13:33:59.3796894Z         "unit"
2026-06-15T13:33:59.3796999Z       ],
2026-06-15T13:33:59.3797104Z       "stages": {
2026-06-15T13:33:59.3797213Z         "doc": {
2026-06-15T13:33:59.3797318Z           "complete": false,
2026-06-15T13:33:59.3797438Z           "evidence": []
2026-06-15T13:33:59.3797537Z         },
2026-06-15T13:33:59.3797643Z         "impl": {
2026-06-15T13:33:59.3797758Z           "complete": true,
2026-06-15T13:33:59.3797861Z           "evidence": [
2026-06-15T13:33:59.3797967Z             {
2026-06-15T13:33:59.3798110Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3798228Z               "line": 376
2026-06-15T13:33:59.3798333Z             },
2026-06-15T13:33:59.3798441Z             {
2026-06-15T13:33:59.3798587Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3798703Z               "line": 56
2026-06-15T13:33:59.3798807Z             }
2026-06-15T13:33:59.3798912Z           ]
2026-06-15T13:33:59.3799104Z         },
2026-06-15T13:33:59.3799207Z         "int": {
2026-06-15T13:33:59.3799332Z           "complete": false,
2026-06-15T13:33:59.3799437Z           "evidence": []
2026-06-15T13:33:59.3799531Z         },
2026-06-15T13:33:59.3799633Z         "unit": {
2026-06-15T13:33:59.3799746Z           "complete": true,
2026-06-15T13:33:59.3799866Z           "evidence": [
2026-06-15T13:33:59.3799967Z             {
2026-06-15T13:33:59.3800109Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3800229Z               "line": 288
2026-06-15T13:33:59.3800620Z             },
2026-06-15T13:33:59.3800723Z             {
2026-06-15T13:33:59.3800871Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T13:33:59.3800980Z               "line": 325
2026-06-15T13:33:59.3801073Z             }
2026-06-15T13:33:59.3801178Z           ]
2026-06-15T13:33:59.3801279Z         }
2026-06-15T13:33:59.3801379Z       }
2026-06-15T13:33:59.3801473Z     },
2026-06-15T13:33:59.3801575Z     {
2026-06-15T13:33:59.3801698Z       "id": "REQ-DAEMON-9",
2026-06-15T13:33:59.3807912Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T13:33:59.3808107Z       "requiredStages": [
2026-06-15T13:33:59.3808208Z         "impl",
2026-06-15T13:33:59.3808308Z         "unit"
2026-06-15T13:33:59.3808407Z       ],
2026-06-15T13:33:59.3808518Z       "stages": {
2026-06-15T13:33:59.3808628Z         "doc": {
2026-06-15T13:33:59.3808750Z           "complete": false,
2026-06-15T13:33:59.3808869Z           "evidence": []
2026-06-15T13:33:59.3809048Z         },
2026-06-15T13:33:59.3809157Z         "impl": {
2026-06-15T13:33:59.3809268Z           "complete": true,
2026-06-15T13:33:59.3809377Z           "evidence": [
2026-06-15T13:33:59.3809486Z             {
2026-06-15T13:33:59.3809649Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3809777Z               "line": 262
2026-06-15T13:33:59.3809873Z             },
2026-06-15T13:33:59.3809973Z             {
2026-06-15T13:33:59.3810130Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3810231Z               "line": 600
2026-06-15T13:33:59.3810350Z             },
2026-06-15T13:33:59.3810464Z             {
2026-06-15T13:33:59.3810621Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3810731Z               "line": 190
2026-06-15T13:33:59.3810846Z             },
2026-06-15T13:33:59.3810945Z             {
2026-06-15T13:33:59.3811089Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3811199Z               "line": 275
2026-06-15T13:33:59.3811288Z             },
2026-06-15T13:33:59.3811397Z             {
2026-06-15T13:33:59.3811540Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3811662Z               "line": 312
2026-06-15T13:33:59.3811767Z             },
2026-06-15T13:33:59.3811878Z             {
2026-06-15T13:33:59.3812010Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3812121Z               "line": 1814
2026-06-15T13:33:59.3812226Z             }
2026-06-15T13:33:59.3812324Z           ]
2026-06-15T13:33:59.3812431Z         },
2026-06-15T13:33:59.3812545Z         "int": {
2026-06-15T13:33:59.3812668Z           "complete": false,
2026-06-15T13:33:59.3812788Z           "evidence": []
2026-06-15T13:33:59.3812888Z         },
2026-06-15T13:33:59.3813002Z         "unit": {
2026-06-15T13:33:59.3813113Z           "complete": true,
2026-06-15T13:33:59.3813231Z           "evidence": [
2026-06-15T13:33:59.3813331Z             {
2026-06-15T13:33:59.3813484Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3813608Z               "line": 723
2026-06-15T13:33:59.3813714Z             },
2026-06-15T13:33:59.3813813Z             {
2026-06-15T13:33:59.3813951Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3814222Z               "line": 8906
2026-06-15T13:33:59.3814322Z             }
2026-06-15T13:33:59.3814423Z           ]
2026-06-15T13:33:59.3814522Z         }
2026-06-15T13:33:59.3814627Z       }
2026-06-15T13:33:59.3814723Z     },
2026-06-15T13:33:59.3814822Z     {
2026-06-15T13:33:59.3814947Z       "id": "REQ-DOCS-1",
2026-06-15T13:33:59.3815180Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T13:33:59.3815295Z       "requiredStages": [
2026-06-15T13:33:59.3815499Z         "doc",
2026-06-15T13:33:59.3815605Z         "impl"
2026-06-15T13:33:59.3815719Z       ],
2026-06-15T13:33:59.3815828Z       "stages": {
2026-06-15T13:33:59.3815930Z         "doc": {
2026-06-15T13:33:59.3816052Z           "complete": true,
2026-06-15T13:33:59.3816153Z           "evidence": [
2026-06-15T13:33:59.3816254Z             {
2026-06-15T13:33:59.3816400Z               "path": "docs-site/src/index.md",
2026-06-15T13:33:59.3816518Z               "line": 50
2026-06-15T13:33:59.3816624Z             }
2026-06-15T13:33:59.3816731Z           ]
2026-06-15T13:33:59.3816840Z         },
2026-06-15T13:33:59.3816941Z         "impl": {
2026-06-15T13:33:59.3817051Z           "complete": true,
2026-06-15T13:33:59.3817160Z           "evidence": [
2026-06-15T13:33:59.3817271Z             {
2026-06-15T13:33:59.3817432Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T13:33:59.3817538Z               "line": 12
2026-06-15T13:33:59.3817642Z             },
2026-06-15T13:33:59.3817747Z             {
2026-06-15T13:33:59.3817895Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.3818004Z               "line": 14
2026-06-15T13:33:59.3818104Z             }
2026-06-15T13:33:59.3818210Z           ]
2026-06-15T13:33:59.3818315Z         },
2026-06-15T13:33:59.3818419Z         "int": {
2026-06-15T13:33:59.3818535Z           "complete": false,
2026-06-15T13:33:59.3818643Z           "evidence": []
2026-06-15T13:33:59.3818743Z         },
2026-06-15T13:33:59.3818845Z         "unit": {
2026-06-15T13:33:59.3819221Z           "complete": false,
2026-06-15T13:33:59.3819348Z           "evidence": []
2026-06-15T13:33:59.3819458Z         }
2026-06-15T13:33:59.3819561Z       }
2026-06-15T13:33:59.3819665Z     },
2026-06-15T13:33:59.3819765Z     {
2026-06-15T13:33:59.3819885Z       "id": "REQ-DOCS-2",
2026-06-15T13:33:59.3820075Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T13:33:59.3820200Z       "requiredStages": [
2026-06-15T13:33:59.3820304Z         "doc",
2026-06-15T13:33:59.3820420Z         "int"
2026-06-15T13:33:59.3820524Z       ],
2026-06-15T13:33:59.3820628Z       "stages": {
2026-06-15T13:33:59.3820734Z         "doc": {
2026-06-15T13:33:59.3820857Z           "complete": true,
2026-06-15T13:33:59.3820971Z           "evidence": [
2026-06-15T13:33:59.3821077Z             {
2026-06-15T13:33:59.3821281Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T13:33:59.3821397Z               "line": 3
2026-06-15T13:33:59.3821510Z             },
2026-06-15T13:33:59.3821615Z             {
2026-06-15T13:33:59.3821764Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T13:33:59.3821872Z               "line": 3
2026-06-15T13:33:59.3821976Z             },
2026-06-15T13:33:59.3822081Z             {
2026-06-15T13:33:59.3822250Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T13:33:59.3822351Z               "line": 3
2026-06-15T13:33:59.3822457Z             }
2026-06-15T13:33:59.3822551Z           ]
2026-06-15T13:33:59.3822662Z         },
2026-06-15T13:33:59.3822766Z         "impl": {
2026-06-15T13:33:59.3822884Z           "complete": false,
2026-06-15T13:33:59.3823000Z           "evidence": []
2026-06-15T13:33:59.3823100Z         },
2026-06-15T13:33:59.3823204Z         "int": {
2026-06-15T13:33:59.3823315Z           "complete": true,
2026-06-15T13:33:59.3823423Z           "evidence": [
2026-06-15T13:33:59.3823524Z             {
2026-06-15T13:33:59.3823668Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:33:59.3823882Z               "line": 14
2026-06-15T13:33:59.3823973Z             }
2026-06-15T13:33:59.3824077Z           ]
2026-06-15T13:33:59.3824177Z         },
2026-06-15T13:33:59.3824279Z         "unit": {
2026-06-15T13:33:59.3824401Z           "complete": false,
2026-06-15T13:33:59.3824517Z           "evidence": []
2026-06-15T13:33:59.3824627Z         }
2026-06-15T13:33:59.3824730Z       }
2026-06-15T13:33:59.3824834Z     },
2026-06-15T13:33:59.3824935Z     {
2026-06-15T13:33:59.3825149Z       "id": "REQ-DOCS-3",
2026-06-15T13:33:59.3825392Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T13:33:59.3825512Z       "requiredStages": [
2026-06-15T13:33:59.3825617Z         "doc"
2026-06-15T13:33:59.3825721Z       ],
2026-06-15T13:33:59.3825826Z       "stages": {
2026-06-15T13:33:59.3825927Z         "doc": {
2026-06-15T13:33:59.3826050Z           "complete": true,
2026-06-15T13:33:59.3826161Z           "evidence": [
2026-06-15T13:33:59.3826265Z             {
2026-06-15T13:33:59.3826417Z               "path": "docs-site/src/index.md",
2026-06-15T13:33:59.3826528Z               "line": 42
2026-06-15T13:33:59.3826631Z             }
2026-06-15T13:33:59.3826732Z           ]
2026-06-15T13:33:59.3826838Z         },
2026-06-15T13:33:59.3826941Z         "impl": {
2026-06-15T13:33:59.3827060Z           "complete": false,
2026-06-15T13:33:59.3827175Z           "evidence": []
2026-06-15T13:33:59.3827272Z         },
2026-06-15T13:33:59.3827381Z         "int": {
2026-06-15T13:33:59.3827511Z           "complete": false,
2026-06-15T13:33:59.3827615Z           "evidence": []
2026-06-15T13:33:59.3827725Z         },
2026-06-15T13:33:59.3827826Z         "unit": {
2026-06-15T13:33:59.3827949Z           "complete": false,
2026-06-15T13:33:59.3828054Z           "evidence": []
2026-06-15T13:33:59.3828160Z         }
2026-06-15T13:33:59.3828264Z       }
2026-06-15T13:33:59.3828364Z     },
2026-06-15T13:33:59.3828461Z     {
2026-06-15T13:33:59.3828583Z       "id": "REQ-DOCS-4",
2026-06-15T13:33:59.3828826Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T13:33:59.3829023Z       "requiredStages": [
2026-06-15T13:33:59.3829123Z         "doc",
2026-06-15T13:33:59.3829227Z         "impl",
2026-06-15T13:33:59.3829333Z         "unit"
2026-06-15T13:33:59.3829433Z       ],
2026-06-15T13:33:59.3829537Z       "stages": {
2026-06-15T13:33:59.3829662Z         "doc": {
2026-06-15T13:33:59.3829767Z           "complete": true,
2026-06-15T13:33:59.3829899Z           "evidence": [
2026-06-15T13:33:59.3829994Z             {
2026-06-15T13:33:59.3830144Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T13:33:59.3830248Z               "line": 35
2026-06-15T13:33:59.3830354Z             }
2026-06-15T13:33:59.3830455Z           ]
2026-06-15T13:33:59.3830554Z         },
2026-06-15T13:33:59.3830660Z         "impl": {
2026-06-15T13:33:59.3830784Z           "complete": true,
2026-06-15T13:33:59.3830892Z           "evidence": [
2026-06-15T13:33:59.3831003Z             {
2026-06-15T13:33:59.3831164Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3831279Z               "line": 621
2026-06-15T13:33:59.3831379Z             },
2026-06-15T13:33:59.3831484Z             {
2026-06-15T13:33:59.3831624Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.3831742Z               "line": 15
2026-06-15T13:33:59.3831842Z             }
2026-06-15T13:33:59.3831953Z           ]
2026-06-15T13:33:59.3832094Z         },
2026-06-15T13:33:59.3832200Z         "int": {
2026-06-15T13:33:59.3832343Z           "complete": false,
2026-06-15T13:33:59.3832442Z           "evidence": []
2026-06-15T13:33:59.3832546Z         },
2026-06-15T13:33:59.3832651Z         "unit": {
2026-06-15T13:33:59.3832768Z           "complete": true,
2026-06-15T13:33:59.3832887Z           "evidence": [
2026-06-15T13:33:59.3832988Z             {
2026-06-15T13:33:59.3833159Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3833374Z               "line": 1280
2026-06-15T13:33:59.3833483Z             }
2026-06-15T13:33:59.3833589Z           ]
2026-06-15T13:33:59.3833694Z         }
2026-06-15T13:33:59.3833793Z       }
2026-06-15T13:33:59.3833894Z     },
2026-06-15T13:33:59.3833998Z     {
2026-06-15T13:33:59.3834113Z       "id": "REQ-DOCS-5",
2026-06-15T13:33:59.3834347Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T13:33:59.3834466Z       "requiredStages": [
2026-06-15T13:33:59.3834576Z         "impl",
2026-06-15T13:33:59.3834781Z         "int"
2026-06-15T13:33:59.3834886Z       ],
2026-06-15T13:33:59.3834990Z       "stages": {
2026-06-15T13:33:59.3835096Z         "doc": {
2026-06-15T13:33:59.3835215Z           "complete": false,
2026-06-15T13:33:59.3835337Z           "evidence": []
2026-06-15T13:33:59.3835432Z         },
2026-06-15T13:33:59.3835533Z         "impl": {
2026-06-15T13:33:59.3835642Z           "complete": true,
2026-06-15T13:33:59.3835757Z           "evidence": [
2026-06-15T13:33:59.3835867Z             {
2026-06-15T13:33:59.3836033Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3836149Z               "line": 622
2026-06-15T13:33:59.3836253Z             },
2026-06-15T13:33:59.3836353Z             {
2026-06-15T13:33:59.3836492Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.3836610Z               "line": 113
2026-06-15T13:33:59.3836711Z             }
2026-06-15T13:33:59.3836807Z           ]
2026-06-15T13:33:59.3836907Z         },
2026-06-15T13:33:59.3837016Z         "int": {
2026-06-15T13:33:59.3837131Z           "complete": true,
2026-06-15T13:33:59.3837240Z           "evidence": [
2026-06-15T13:33:59.3837345Z             {
2026-06-15T13:33:59.3837488Z               "path": ".github/workflows/ci.yml",
2026-06-15T13:33:59.3837606Z               "line": 126
2026-06-15T13:33:59.3837711Z             },
2026-06-15T13:33:59.3837814Z             {
2026-06-15T13:33:59.3837960Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.3838071Z               "line": 1317
2026-06-15T13:33:59.3838171Z             }
2026-06-15T13:33:59.3838271Z           ]
2026-06-15T13:33:59.3838367Z         },
2026-06-15T13:33:59.3838477Z         "unit": {
2026-06-15T13:33:59.3838590Z           "complete": false,
2026-06-15T13:33:59.3838711Z           "evidence": []
2026-06-15T13:33:59.3838806Z         }
2026-06-15T13:33:59.3838910Z       }
2026-06-15T13:33:59.3839067Z     },
2026-06-15T13:33:59.3839176Z     {
2026-06-15T13:33:59.3839311Z       "id": "REQ-DOCS-6",
2026-06-15T13:33:59.3839679Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T13:33:59.3839806Z       "requiredStages": [
2026-06-15T13:33:59.3839908Z         "impl",
2026-06-15T13:33:59.3840012Z         "unit",
2026-06-15T13:33:59.3840116Z         "int"
2026-06-15T13:33:59.3840213Z       ],
2026-06-15T13:33:59.3840313Z       "stages": {
2026-06-15T13:33:59.3840416Z         "doc": {
2026-06-15T13:33:59.3840545Z           "complete": true,
2026-06-15T13:33:59.3840654Z           "evidence": [
2026-06-15T13:33:59.3840757Z             {
2026-06-15T13:33:59.3840924Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T13:33:59.3841024Z               "line": 4
2026-06-15T13:33:59.3841124Z             }
2026-06-15T13:33:59.3841225Z           ]
2026-06-15T13:33:59.3841330Z         },
2026-06-15T13:33:59.3841434Z         "impl": {
2026-06-15T13:33:59.3841559Z           "complete": true,
2026-06-15T13:33:59.3841673Z           "evidence": [
2026-06-15T13:33:59.3841777Z             {
2026-06-15T13:33:59.3841916Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3842025Z               "line": 4693
2026-06-15T13:33:59.3842130Z             }
2026-06-15T13:33:59.3842226Z           ]
2026-06-15T13:33:59.3842335Z         },
2026-06-15T13:33:59.3842435Z         "int": {
2026-06-15T13:33:59.3842560Z           "complete": true,
2026-06-15T13:33:59.3842780Z           "evidence": [
2026-06-15T13:33:59.3842884Z             {
2026-06-15T13:33:59.3843035Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:33:59.3843140Z               "line": 39
2026-06-15T13:33:59.3843243Z             }
2026-06-15T13:33:59.3843347Z           ]
2026-06-15T13:33:59.3843447Z         },
2026-06-15T13:33:59.3843553Z         "unit": {
2026-06-15T13:33:59.3843671Z           "complete": true,
2026-06-15T13:33:59.3843782Z           "evidence": [
2026-06-15T13:33:59.3843887Z             {
2026-06-15T13:33:59.3844139Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3844239Z               "line": 9068
2026-06-15T13:33:59.3844353Z             }
2026-06-15T13:33:59.3844454Z           ]
2026-06-15T13:33:59.3844558Z         }
2026-06-15T13:33:59.3844663Z       }
2026-06-15T13:33:59.3844760Z     },
2026-06-15T13:33:59.3844859Z     {
2026-06-15T13:33:59.3844978Z       "id": "REQ-ELEVATE-1",
2026-06-15T13:33:59.3848238Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T13:33:59.3848384Z       "requiredStages": [
2026-06-15T13:33:59.3848488Z         "doc",
2026-06-15T13:33:59.3848593Z         "impl",
2026-06-15T13:33:59.3848704Z         "unit"
2026-06-15T13:33:59.3848807Z       ],
2026-06-15T13:33:59.3848917Z       "stages": {
2026-06-15T13:33:59.3849083Z         "doc": {
2026-06-15T13:33:59.3849204Z           "complete": true,
2026-06-15T13:33:59.3849322Z           "evidence": [
2026-06-15T13:33:59.3849422Z             {
2026-06-15T13:33:59.3849542Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.3849671Z               "line": 631
2026-06-15T13:33:59.3849770Z             }
2026-06-15T13:33:59.3849871Z           ]
2026-06-15T13:33:59.3850191Z         },
2026-06-15T13:33:59.3850313Z         "impl": {
2026-06-15T13:33:59.3855152Z           "complete": true,
2026-06-15T13:33:59.3855301Z           "evidence": [
2026-06-15T13:33:59.3855405Z             {
2026-06-15T13:33:59.3855567Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3855705Z               "line": 3128
2026-06-15T13:33:59.3855815Z             },
2026-06-15T13:33:59.3855916Z             {
2026-06-15T13:33:59.3856057Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3856163Z               "line": 3173
2026-06-15T13:33:59.3856265Z             },
2026-06-15T13:33:59.3856368Z             {
2026-06-15T13:33:59.3856505Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3856620Z               "line": 3235
2026-06-15T13:33:59.3856725Z             },
2026-06-15T13:33:59.3856819Z             {
2026-06-15T13:33:59.3856964Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.3857072Z               "line": 92
2026-06-15T13:33:59.3857173Z             },
2026-06-15T13:33:59.3857278Z             {
2026-06-15T13:33:59.3857421Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.3857526Z               "line": 148
2026-06-15T13:33:59.3857621Z             }
2026-06-15T13:33:59.3857721Z           ]
2026-06-15T13:33:59.3857826Z         },
2026-06-15T13:33:59.3858078Z         "int": {
2026-06-15T13:33:59.3858194Z           "complete": false,
2026-06-15T13:33:59.3858298Z           "evidence": []
2026-06-15T13:33:59.3858403Z         },
2026-06-15T13:33:59.3858514Z         "unit": {
2026-06-15T13:33:59.3858627Z           "complete": true,
2026-06-15T13:33:59.3858726Z           "evidence": [
2026-06-15T13:33:59.3858831Z             {
2026-06-15T13:33:59.3859401Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.3859526Z               "line": 442
2026-06-15T13:33:59.3859739Z             },
2026-06-15T13:33:59.3859831Z             {
2026-06-15T13:33:59.3859973Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.3860084Z               "line": 460
2026-06-15T13:33:59.3860188Z             }
2026-06-15T13:33:59.3860288Z           ]
2026-06-15T13:33:59.3860393Z         }
2026-06-15T13:33:59.3860493Z       }
2026-06-15T13:33:59.3860593Z     },
2026-06-15T13:33:59.3860693Z     {
2026-06-15T13:33:59.3860818Z       "id": "REQ-EP-1",
2026-06-15T13:33:59.3860989Z       "title": "Day-one endpoint types; open type system",
2026-06-15T13:33:59.3861109Z       "requiredStages": [
2026-06-15T13:33:59.3861212Z         "impl",
2026-06-15T13:33:59.3861314Z         "unit"
2026-06-15T13:33:59.3861419Z       ],
2026-06-15T13:33:59.3861522Z       "stages": {
2026-06-15T13:33:59.3861622Z         "doc": {
2026-06-15T13:33:59.3861746Z           "complete": false,
2026-06-15T13:33:59.3861858Z           "evidence": []
2026-06-15T13:33:59.3861962Z         },
2026-06-15T13:33:59.3862078Z         "impl": {
2026-06-15T13:33:59.3862201Z           "complete": true,
2026-06-15T13:33:59.3862306Z           "evidence": [
2026-06-15T13:33:59.3862407Z             {
2026-06-15T13:33:59.3862573Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3862674Z               "line": 77
2026-06-15T13:33:59.3862784Z             },
2026-06-15T13:33:59.3862887Z             {
2026-06-15T13:33:59.3863046Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3863150Z               "line": 94
2026-06-15T13:33:59.3863255Z             }
2026-06-15T13:33:59.3863356Z           ]
2026-06-15T13:33:59.3863455Z         },
2026-06-15T13:33:59.3863565Z         "int": {
2026-06-15T13:33:59.3863681Z           "complete": false,
2026-06-15T13:33:59.3863779Z           "evidence": []
2026-06-15T13:33:59.3863885Z         },
2026-06-15T13:33:59.3863991Z         "unit": {
2026-06-15T13:33:59.3864108Z           "complete": true,
2026-06-15T13:33:59.3864217Z           "evidence": [
2026-06-15T13:33:59.3864327Z             {
2026-06-15T13:33:59.3864477Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3864597Z               "line": 161
2026-06-15T13:33:59.3864697Z             },
2026-06-15T13:33:59.3864806Z             {
2026-06-15T13:33:59.3864959Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3865068Z               "line": 178
2026-06-15T13:33:59.3865178Z             }
2026-06-15T13:33:59.3865283Z           ]
2026-06-15T13:33:59.3865388Z         }
2026-06-15T13:33:59.3865488Z       }
2026-06-15T13:33:59.3865593Z     },
2026-06-15T13:33:59.3865698Z     {
2026-06-15T13:33:59.3865802Z       "id": "REQ-EP-2",
2026-06-15T13:33:59.3866013Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T13:33:59.3866117Z       "requiredStages": [
2026-06-15T13:33:59.3866219Z         "impl",
2026-06-15T13:33:59.3866312Z         "unit"
2026-06-15T13:33:59.3866418Z       ],
2026-06-15T13:33:59.3866534Z       "stages": {
2026-06-15T13:33:59.3866637Z         "doc": {
2026-06-15T13:33:59.3866742Z           "complete": false,
2026-06-15T13:33:59.3866853Z           "evidence": []
2026-06-15T13:33:59.3866956Z         },
2026-06-15T13:33:59.3867060Z         "impl": {
2026-06-15T13:33:59.3867180Z           "complete": true,
2026-06-15T13:33:59.3867285Z           "evidence": [
2026-06-15T13:33:59.3867384Z             {
2026-06-15T13:33:59.3867547Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3867777Z               "line": 114
2026-06-15T13:33:59.3867872Z             },
2026-06-15T13:33:59.3867976Z             {
2026-06-15T13:33:59.3868120Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3868224Z               "line": 131
2026-06-15T13:33:59.3868329Z             },
2026-06-15T13:33:59.3868426Z             {
2026-06-15T13:33:59.3868562Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3868682Z               "line": 138
2026-06-15T13:33:59.3868853Z             }
2026-06-15T13:33:59.3869026Z           ]
2026-06-15T13:33:59.3869126Z         },
2026-06-15T13:33:59.3869229Z         "int": {
2026-06-15T13:33:59.3869348Z           "complete": false,
2026-06-15T13:33:59.3869453Z           "evidence": []
2026-06-15T13:33:59.3869561Z         },
2026-06-15T13:33:59.3869656Z         "unit": {
2026-06-15T13:33:59.3869776Z           "complete": true,
2026-06-15T13:33:59.3869880Z           "evidence": [
2026-06-15T13:33:59.3869984Z             {
2026-06-15T13:33:59.3870133Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3870246Z               "line": 190
2026-06-15T13:33:59.3870353Z             },
2026-06-15T13:33:59.3870452Z             {
2026-06-15T13:33:59.3870595Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3870710Z               "line": 208
2026-06-15T13:33:59.3870805Z             },
2026-06-15T13:33:59.3870905Z             {
2026-06-15T13:33:59.3871044Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T13:33:59.3871168Z               "line": 221
2026-06-15T13:33:59.3871263Z             }
2026-06-15T13:33:59.3871368Z           ]
2026-06-15T13:33:59.3871478Z         }
2026-06-15T13:33:59.3871578Z       }
2026-06-15T13:33:59.3871669Z     },
2026-06-15T13:33:59.3871768Z     {
2026-06-15T13:33:59.3871888Z       "id": "REQ-EP-3",
2026-06-15T13:33:59.3872106Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T13:33:59.3872230Z       "requiredStages": [
2026-06-15T13:33:59.3872334Z         "impl",
2026-06-15T13:33:59.3872432Z         "unit"
2026-06-15T13:33:59.3872537Z       ],
2026-06-15T13:33:59.3872638Z       "stages": {
2026-06-15T13:33:59.3872747Z         "doc": {
2026-06-15T13:33:59.3872866Z           "complete": false,
2026-06-15T13:33:59.3872981Z           "evidence": []
2026-06-15T13:33:59.3873081Z         },
2026-06-15T13:33:59.3873186Z         "impl": {
2026-06-15T13:33:59.3873305Z           "complete": true,
2026-06-15T13:33:59.3873419Z           "evidence": [
2026-06-15T13:33:59.3873520Z             {
2026-06-15T13:33:59.3873662Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3873782Z               "line": 31
2026-06-15T13:33:59.3873888Z             },
2026-06-15T13:33:59.3873986Z             {
2026-06-15T13:33:59.3874135Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3874246Z               "line": 49
2026-06-15T13:33:59.3874349Z             }
2026-06-15T13:33:59.3874455Z           ]
2026-06-15T13:33:59.3874546Z         },
2026-06-15T13:33:59.3874654Z         "int": {
2026-06-15T13:33:59.3874772Z           "complete": false,
2026-06-15T13:33:59.3874892Z           "evidence": []
2026-06-15T13:33:59.3874994Z         },
2026-06-15T13:33:59.3875099Z         "unit": {
2026-06-15T13:33:59.3875205Z           "complete": true,
2026-06-15T13:33:59.3875323Z           "evidence": [
2026-06-15T13:33:59.3875423Z             {
2026-06-15T13:33:59.3875572Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3875690Z               "line": 156
2026-06-15T13:33:59.3875796Z             },
2026-06-15T13:33:59.3875901Z             {
2026-06-15T13:33:59.3876048Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3876163Z               "line": 164
2026-06-15T13:33:59.3876263Z             },
2026-06-15T13:33:59.3876358Z             {
2026-06-15T13:33:59.3876501Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3876721Z               "line": 177
2026-06-15T13:33:59.3876821Z             },
2026-06-15T13:33:59.3876921Z             {
2026-06-15T13:33:59.3877070Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3877182Z               "line": 200
2026-06-15T13:33:59.3877283Z             },
2026-06-15T13:33:59.3877385Z             {
2026-06-15T13:33:59.3877525Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3877634Z               "line": 216
2026-06-15T13:33:59.3877831Z             },
2026-06-15T13:33:59.3877926Z             {
2026-06-15T13:33:59.3878065Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T13:33:59.3878174Z               "line": 233
2026-06-15T13:33:59.3878278Z             }
2026-06-15T13:33:59.3878379Z           ]
2026-06-15T13:33:59.3878479Z         }
2026-06-15T13:33:59.3878579Z       }
2026-06-15T13:33:59.3878680Z     },
2026-06-15T13:33:59.3878784Z     {
2026-06-15T13:33:59.3878894Z       "id": "REQ-EP-4",
2026-06-15T13:33:59.3879165Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T13:33:59.3879286Z       "requiredStages": [
2026-06-15T13:33:59.3879390Z         "impl",
2026-06-15T13:33:59.3879490Z         "unit"
2026-06-15T13:33:59.3879595Z       ],
2026-06-15T13:33:59.3879695Z       "stages": {
2026-06-15T13:33:59.3879799Z         "doc": {
2026-06-15T13:33:59.3879922Z           "complete": false,
2026-06-15T13:33:59.3880027Z           "evidence": []
2026-06-15T13:33:59.3880130Z         },
2026-06-15T13:33:59.3880235Z         "impl": {
2026-06-15T13:33:59.3880355Z           "complete": true,
2026-06-15T13:33:59.3880468Z           "evidence": [
2026-06-15T13:33:59.3880564Z             {
2026-06-15T13:33:59.3880707Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3880807Z               "line": 717
2026-06-15T13:33:59.3880908Z             },
2026-06-15T13:33:59.3881008Z             {
2026-06-15T13:33:59.3881150Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3881261Z               "line": 1048
2026-06-15T13:33:59.3881361Z             },
2026-06-15T13:33:59.3881465Z             {
2026-06-15T13:33:59.3881613Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3881728Z               "line": 1359
2026-06-15T13:33:59.3881828Z             },
2026-06-15T13:33:59.3881928Z             {
2026-06-15T13:33:59.3882071Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3882172Z               "line": 118
2026-06-15T13:33:59.3882276Z             },
2026-06-15T13:33:59.3882376Z             {
2026-06-15T13:33:59.3882520Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3882628Z               "line": 609
2026-06-15T13:33:59.3882732Z             },
2026-06-15T13:33:59.3882838Z             {
2026-06-15T13:33:59.3882983Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3883088Z               "line": 734
2026-06-15T13:33:59.3883179Z             },
2026-06-15T13:33:59.3883293Z             {
2026-06-15T13:33:59.3883436Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3883546Z               "line": 217
2026-06-15T13:33:59.3883650Z             },
2026-06-15T13:33:59.3883746Z             {
2026-06-15T13:33:59.3883894Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3884012Z               "line": 400
2026-06-15T13:33:59.3884118Z             },
2026-06-15T13:33:59.3884222Z             {
2026-06-15T13:33:59.3884366Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.3884495Z               "line": 1017
2026-06-15T13:33:59.3884595Z             }
2026-06-15T13:33:59.3884700Z           ]
2026-06-15T13:33:59.3884801Z         },
2026-06-15T13:33:59.3884899Z         "int": {
2026-06-15T13:33:59.3885020Z           "complete": false,
2026-06-15T13:33:59.3885130Z           "evidence": []
2026-06-15T13:33:59.3885228Z         },
2026-06-15T13:33:59.3885332Z         "unit": {
2026-06-15T13:33:59.3885545Z           "complete": true,
2026-06-15T13:33:59.3885654Z           "evidence": [
2026-06-15T13:33:59.3885751Z             {
2026-06-15T13:33:59.3885892Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.3886003Z               "line": 825
2026-06-15T13:33:59.3886103Z             },
2026-06-15T13:33:59.3886203Z             {
2026-06-15T13:33:59.3886366Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T13:33:59.3886475Z               "line": 76
2026-06-15T13:33:59.3886685Z             },
2026-06-15T13:33:59.3886784Z             {
2026-06-15T13:33:59.3886937Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T13:33:59.3887052Z               "line": 147
2026-06-15T13:33:59.3887147Z             }
2026-06-15T13:33:59.3887252Z           ]
2026-06-15T13:33:59.3887353Z         }
2026-06-15T13:33:59.3887447Z       }
2026-06-15T13:33:59.3887538Z     },
2026-06-15T13:33:59.3887635Z     {
2026-06-15T13:33:59.3887747Z       "id": "REQ-EP-5",
2026-06-15T13:33:59.3888467Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T13:33:59.3888591Z       "requiredStages": [
2026-06-15T13:33:59.3888692Z         "impl",
2026-06-15T13:33:59.3888796Z         "unit",
2026-06-15T13:33:59.3888902Z         "int"
2026-06-15T13:33:59.3889067Z       ],
2026-06-15T13:33:59.3889168Z       "stages": {
2026-06-15T13:33:59.3889269Z         "doc": {
2026-06-15T13:33:59.3889392Z           "complete": false,
2026-06-15T13:33:59.3889492Z           "evidence": []
2026-06-15T13:33:59.3889598Z         },
2026-06-15T13:33:59.3889707Z         "impl": {
2026-06-15T13:33:59.3889822Z           "complete": true,
2026-06-15T13:33:59.3889931Z           "evidence": [
2026-06-15T13:33:59.3890026Z             {
2026-06-15T13:33:59.3890190Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.3890307Z               "line": 367
2026-06-15T13:33:59.3890406Z             },
2026-06-15T13:33:59.3890512Z             {
2026-06-15T13:33:59.3890657Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3890761Z               "line": 18
2026-06-15T13:33:59.3890862Z             },
2026-06-15T13:33:59.3890967Z             {
2026-06-15T13:33:59.3891115Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3891220Z               "line": 63
2026-06-15T13:33:59.3891324Z             },
2026-06-15T13:33:59.3891425Z             {
2026-06-15T13:33:59.3891578Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3891687Z               "line": 92
2026-06-15T13:33:59.3891793Z             },
2026-06-15T13:33:59.3891892Z             {
2026-06-15T13:33:59.3892040Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3892150Z               "line": 167
2026-06-15T13:33:59.3892254Z             },
2026-06-15T13:33:59.3892354Z             {
2026-06-15T13:33:59.3892502Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3892607Z               "line": 179
2026-06-15T13:33:59.3892708Z             },
2026-06-15T13:33:59.3892808Z             {
2026-06-15T13:33:59.3892951Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.3893062Z               "line": 114
2026-06-15T13:33:59.3893170Z             },
2026-06-15T13:33:59.3893269Z             {
2026-06-15T13:33:59.3893431Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3893548Z               "line": 22
2026-06-15T13:33:59.3893653Z             },
2026-06-15T13:33:59.3893754Z             {
2026-06-15T13:33:59.3893905Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3894016Z               "line": 145
2026-06-15T13:33:59.3894116Z             },
2026-06-15T13:33:59.3894225Z             {
2026-06-15T13:33:59.3894383Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3894602Z               "line": 174
2026-06-15T13:33:59.3894707Z             },
2026-06-15T13:33:59.3894807Z             {
2026-06-15T13:33:59.3894965Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3895074Z               "line": 196
2026-06-15T13:33:59.3895179Z             },
2026-06-15T13:33:59.3895285Z             {
2026-06-15T13:33:59.3895436Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3895637Z               "line": 221
2026-06-15T13:33:59.3895741Z             },
2026-06-15T13:33:59.3895845Z             {
2026-06-15T13:33:59.3895988Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3896105Z               "line": 247
2026-06-15T13:33:59.3896205Z             },
2026-06-15T13:33:59.3896306Z             {
2026-06-15T13:33:59.3896448Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3896553Z               "line": 270
2026-06-15T13:33:59.3896659Z             },
2026-06-15T13:33:59.3896758Z             {
2026-06-15T13:33:59.3896902Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3897021Z               "line": 100
2026-06-15T13:33:59.3897125Z             },
2026-06-15T13:33:59.3897231Z             {
2026-06-15T13:33:59.3897364Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3897479Z               "line": 5198
2026-06-15T13:33:59.3897584Z             },
2026-06-15T13:33:59.3897684Z             {
2026-06-15T13:33:59.3897827Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3897937Z               "line": 5332
2026-06-15T13:33:59.3898046Z             },
2026-06-15T13:33:59.3898147Z             {
2026-06-15T13:33:59.3898294Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3898413Z               "line": 5498
2026-06-15T13:33:59.3898514Z             },
2026-06-15T13:33:59.3898618Z             {
2026-06-15T13:33:59.3898745Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3898861Z               "line": 5893
2026-06-15T13:33:59.3899098Z             }
2026-06-15T13:33:59.3899199Z           ]
2026-06-15T13:33:59.3899303Z         },
2026-06-15T13:33:59.3899408Z         "int": {
2026-06-15T13:33:59.3899533Z           "complete": true,
2026-06-15T13:33:59.3899637Z           "evidence": [
2026-06-15T13:33:59.3899742Z             {
2026-06-15T13:33:59.3899890Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:33:59.3900004Z               "line": 16
2026-06-15T13:33:59.3900111Z             },
2026-06-15T13:33:59.3900209Z             {
2026-06-15T13:33:59.3900357Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:33:59.3900459Z               "line": 15
2026-06-15T13:33:59.3900562Z             }
2026-06-15T13:33:59.3900668Z           ]
2026-06-15T13:33:59.3900769Z         },
2026-06-15T13:33:59.3900867Z         "unit": {
2026-06-15T13:33:59.3900976Z           "complete": true,
2026-06-15T13:33:59.3901096Z           "evidence": [
2026-06-15T13:33:59.3901198Z             {
2026-06-15T13:33:59.3901351Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3901461Z               "line": 246
2026-06-15T13:33:59.3901560Z             },
2026-06-15T13:33:59.3901661Z             {
2026-06-15T13:33:59.3901819Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3901937Z               "line": 306
2026-06-15T13:33:59.3902038Z             },
2026-06-15T13:33:59.3902143Z             {
2026-06-15T13:33:59.3902285Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T13:33:59.3902409Z               "line": 363
2026-06-15T13:33:59.3902509Z             },
2026-06-15T13:33:59.3902614Z             {
2026-06-15T13:33:59.3902762Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3902872Z               "line": 286
2026-06-15T13:33:59.3902963Z             },
2026-06-15T13:33:59.3903067Z             {
2026-06-15T13:33:59.3903215Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.3903453Z               "line": 338
2026-06-15T13:33:59.3903559Z             },
2026-06-15T13:33:59.3903660Z             {
2026-06-15T13:33:59.3903810Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3903929Z               "line": 659
2026-06-15T13:33:59.3904019Z             },
2026-06-15T13:33:59.3904113Z             {
2026-06-15T13:33:59.3904251Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3904451Z               "line": 7120
2026-06-15T13:33:59.3904561Z             },
2026-06-15T13:33:59.3904662Z             {
2026-06-15T13:33:59.3904794Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3904910Z               "line": 7247
2026-06-15T13:33:59.3905014Z             },
2026-06-15T13:33:59.3905123Z             {
2026-06-15T13:33:59.3905258Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3905372Z               "line": 7836
2026-06-15T13:33:59.3905481Z             },
2026-06-15T13:33:59.3905582Z             {
2026-06-15T13:33:59.3905705Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3905816Z               "line": 7952
2026-06-15T13:33:59.3905916Z             }
2026-06-15T13:33:59.3906015Z           ]
2026-06-15T13:33:59.3906121Z         }
2026-06-15T13:33:59.3906221Z       }
2026-06-15T13:33:59.3906325Z     },
2026-06-15T13:33:59.3906424Z     {
2026-06-15T13:33:59.3906543Z       "id": "REQ-EP-6",
2026-06-15T13:33:59.3908106Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T13:33:59.3908239Z       "requiredStages": [
2026-06-15T13:33:59.3908344Z         "doc",
2026-06-15T13:33:59.3908454Z         "impl",
2026-06-15T13:33:59.3908558Z         "unit"
2026-06-15T13:33:59.3908663Z       ],
2026-06-15T13:33:59.3908774Z       "stages": {
2026-06-15T13:33:59.3908877Z         "doc": {
2026-06-15T13:33:59.3909070Z           "complete": true,
2026-06-15T13:33:59.3909183Z           "evidence": [
2026-06-15T13:33:59.3909291Z             {
2026-06-15T13:33:59.3909411Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.3909535Z               "line": 208
2026-06-15T13:33:59.3909635Z             }
2026-06-15T13:33:59.3909736Z           ]
2026-06-15T13:33:59.3909836Z         },
2026-06-15T13:33:59.3909944Z         "impl": {
2026-06-15T13:33:59.3910065Z           "complete": true,
2026-06-15T13:33:59.3910179Z           "evidence": [
2026-06-15T13:33:59.3910283Z             {
2026-06-15T13:33:59.3910427Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.3910545Z               "line": 174
2026-06-15T13:33:59.3910651Z             }
2026-06-15T13:33:59.3910751Z           ]
2026-06-15T13:33:59.3910860Z         },
2026-06-15T13:33:59.3910962Z         "int": {
2026-06-15T13:33:59.3911084Z           "complete": true,
2026-06-15T13:33:59.3911194Z           "evidence": [
2026-06-15T13:33:59.3911295Z             {
2026-06-15T13:33:59.3911446Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T13:33:59.3911564Z               "line": 18
2026-06-15T13:33:59.3911660Z             }
2026-06-15T13:33:59.3911763Z           ]
2026-06-15T13:33:59.3911867Z         },
2026-06-15T13:33:59.3911973Z         "unit": {
2026-06-15T13:33:59.3912087Z           "complete": true,
2026-06-15T13:33:59.3912201Z           "evidence": [
2026-06-15T13:33:59.3912303Z             {
2026-06-15T13:33:59.3912459Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.3912569Z               "line": 534
2026-06-15T13:33:59.3912674Z             },
2026-06-15T13:33:59.3912773Z             {
2026-06-15T13:33:59.3913037Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.3913150Z               "line": 629
2026-06-15T13:33:59.3913252Z             }
2026-06-15T13:33:59.3913356Z           ]
2026-06-15T13:33:59.3913460Z         }
2026-06-15T13:33:59.3913567Z       }
2026-06-15T13:33:59.3913670Z     },
2026-06-15T13:33:59.3913775Z     {
2026-06-15T13:33:59.3913877Z       "id": "REQ-EP-7",
2026-06-15T13:33:59.3915631Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T13:33:59.3915870Z       "requiredStages": [
2026-06-15T13:33:59.3915975Z         "doc",
2026-06-15T13:33:59.3916080Z         "impl",
2026-06-15T13:33:59.3916180Z         "unit"
2026-06-15T13:33:59.3916284Z       ],
2026-06-15T13:33:59.3916390Z       "stages": {
2026-06-15T13:33:59.3916486Z         "doc": {
2026-06-15T13:33:59.3916619Z           "complete": true,
2026-06-15T13:33:59.3916729Z           "evidence": [
2026-06-15T13:33:59.3916838Z             {
2026-06-15T13:33:59.3916951Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.3917071Z               "line": 434
2026-06-15T13:33:59.3917178Z             }
2026-06-15T13:33:59.3917277Z           ]
2026-06-15T13:33:59.3917373Z         },
2026-06-15T13:33:59.3917479Z         "impl": {
2026-06-15T13:33:59.3917601Z           "complete": true,
2026-06-15T13:33:59.3917708Z           "evidence": [
2026-06-15T13:33:59.3917817Z             {
2026-06-15T13:33:59.3917969Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.3918074Z               "line": 505
2026-06-15T13:33:59.3918189Z             },
2026-06-15T13:33:59.3918289Z             {
2026-06-15T13:33:59.3918437Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.3918546Z               "line": 87
2026-06-15T13:33:59.3918657Z             },
2026-06-15T13:33:59.3918756Z             {
2026-06-15T13:33:59.3918918Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.3919113Z               "line": 81
2026-06-15T13:33:59.3919213Z             },
2026-06-15T13:33:59.3919324Z             {
2026-06-15T13:33:59.3919491Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.3919596Z               "line": 166
2026-06-15T13:33:59.3919696Z             },
2026-06-15T13:33:59.3919790Z             {
2026-06-15T13:33:59.3919928Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3920044Z               "line": 1440
2026-06-15T13:33:59.3920137Z             }
2026-06-15T13:33:59.3920238Z           ]
2026-06-15T13:33:59.3920348Z         },
2026-06-15T13:33:59.3920448Z         "int": {
2026-06-15T13:33:59.3920568Z           "complete": false,
2026-06-15T13:33:59.3920681Z           "evidence": []
2026-06-15T13:33:59.3920786Z         },
2026-06-15T13:33:59.3920892Z         "unit": {
2026-06-15T13:33:59.3921001Z           "complete": true,
2026-06-15T13:33:59.3921115Z           "evidence": [
2026-06-15T13:33:59.3921216Z             {
2026-06-15T13:33:59.3921363Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.3921483Z               "line": 623
2026-06-15T13:33:59.3921579Z             },
2026-06-15T13:33:59.3921682Z             {
2026-06-15T13:33:59.3921831Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.3921936Z               "line": 212
2026-06-15T13:33:59.3922039Z             },
2026-06-15T13:33:59.3922139Z             {
2026-06-15T13:33:59.3922277Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.3922390Z               "line": 307
2026-06-15T13:33:59.3922591Z             },
2026-06-15T13:33:59.3922690Z             {
2026-06-15T13:33:59.3922819Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3922944Z               "line": 6307
2026-06-15T13:33:59.3923043Z             },
2026-06-15T13:33:59.3923144Z             {
2026-06-15T13:33:59.3923273Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3923391Z               "line": 6334
2026-06-15T13:33:59.3923497Z             }
2026-06-15T13:33:59.3923597Z           ]
2026-06-15T13:33:59.3923797Z         }
2026-06-15T13:33:59.3923887Z       }
2026-06-15T13:33:59.3923996Z     },
2026-06-15T13:33:59.3924098Z     {
2026-06-15T13:33:59.3924220Z       "id": "REQ-FRONT-1",
2026-06-15T13:33:59.3924446Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T13:33:59.3924568Z       "requiredStages": [],
2026-06-15T13:33:59.3924674Z       "stages": {
2026-06-15T13:33:59.3924775Z         "doc": {
2026-06-15T13:33:59.3924892Z           "complete": false,
2026-06-15T13:33:59.3925021Z           "evidence": []
2026-06-15T13:33:59.3925121Z         },
2026-06-15T13:33:59.3925238Z         "impl": {
2026-06-15T13:33:59.3925357Z           "complete": false,
2026-06-15T13:33:59.3925477Z           "evidence": []
2026-06-15T13:33:59.3925581Z         },
2026-06-15T13:33:59.3925686Z         "int": {
2026-06-15T13:33:59.3925806Z           "complete": false,
2026-06-15T13:33:59.3925924Z           "evidence": []
2026-06-15T13:33:59.3926030Z         },
2026-06-15T13:33:59.3926125Z         "unit": {
2026-06-15T13:33:59.3926253Z           "complete": false,
2026-06-15T13:33:59.3926364Z           "evidence": []
2026-06-15T13:33:59.3926468Z         }
2026-06-15T13:33:59.3926568Z       }
2026-06-15T13:33:59.3926660Z     },
2026-06-15T13:33:59.3926754Z     {
2026-06-15T13:33:59.3926897Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T13:33:59.3929561Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T13:33:59.3929697Z       "requiredStages": [
2026-06-15T13:33:59.3929803Z         "doc",
2026-06-15T13:33:59.3929913Z         "impl",
2026-06-15T13:33:59.3930017Z         "unit",
2026-06-15T13:33:59.3930118Z         "int"
2026-06-15T13:33:59.3930223Z       ],
2026-06-15T13:33:59.3930326Z       "stages": {
2026-06-15T13:33:59.3930430Z         "doc": {
2026-06-15T13:33:59.3930546Z           "complete": true,
2026-06-15T13:33:59.3930665Z           "evidence": [
2026-06-15T13:33:59.3930760Z             {
2026-06-15T13:33:59.3930904Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.3931008Z               "line": 326
2026-06-15T13:33:59.3931113Z             }
2026-06-15T13:33:59.3931218Z           ]
2026-06-15T13:33:59.3931318Z         },
2026-06-15T13:33:59.3931432Z         "impl": {
2026-06-15T13:33:59.3931557Z           "complete": true,
2026-06-15T13:33:59.3931670Z           "evidence": [
2026-06-15T13:33:59.3931762Z             {
2026-06-15T13:33:59.3931913Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3932023Z               "line": 480
2026-06-15T13:33:59.3932129Z             },
2026-06-15T13:33:59.3932233Z             {
2026-06-15T13:33:59.3932386Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3932604Z               "line": 485
2026-06-15T13:33:59.3932714Z             },
2026-06-15T13:33:59.3932818Z             {
2026-06-15T13:33:59.3932969Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3933074Z               "line": 860
2026-06-15T13:33:59.3933175Z             },
2026-06-15T13:33:59.3933278Z             {
2026-06-15T13:33:59.3933423Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3933527Z               "line": 901
2026-06-15T13:33:59.3933631Z             },
2026-06-15T13:33:59.3933842Z             {
2026-06-15T13:33:59.3933985Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3934104Z               "line": 912
2026-06-15T13:33:59.3934209Z             },
2026-06-15T13:33:59.3934314Z             {
2026-06-15T13:33:59.3934476Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.3934585Z               "line": 358
2026-06-15T13:33:59.3934687Z             }
2026-06-15T13:33:59.3934790Z           ]
2026-06-15T13:33:59.3934885Z         },
2026-06-15T13:33:59.3934992Z         "int": {
2026-06-15T13:33:59.3935114Z           "complete": true,
2026-06-15T13:33:59.3935230Z           "evidence": [
2026-06-15T13:33:59.3935326Z             {
2026-06-15T13:33:59.3935490Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T13:33:59.3935595Z               "line": 30
2026-06-15T13:33:59.3935700Z             }
2026-06-15T13:33:59.3935803Z           ]
2026-06-15T13:33:59.3935908Z         },
2026-06-15T13:33:59.3936027Z         "unit": {
2026-06-15T13:33:59.3936141Z           "complete": true,
2026-06-15T13:33:59.3936261Z           "evidence": [
2026-06-15T13:33:59.3936366Z             {
2026-06-15T13:33:59.3936517Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3936638Z               "line": 1453
2026-06-15T13:33:59.3936737Z             },
2026-06-15T13:33:59.3936837Z             {
2026-06-15T13:33:59.3936995Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3937109Z               "line": 1478
2026-06-15T13:33:59.3937215Z             },
2026-06-15T13:33:59.3937310Z             {
2026-06-15T13:33:59.3937448Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3937563Z               "line": 1495
2026-06-15T13:33:59.3940506Z             },
2026-06-15T13:33:59.3940630Z             {
2026-06-15T13:33:59.3940811Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3940925Z               "line": 1538
2026-06-15T13:33:59.3941033Z             }
2026-06-15T13:33:59.3941140Z           ]
2026-06-15T13:33:59.3941239Z         }
2026-06-15T13:33:59.3941339Z       }
2026-06-15T13:33:59.3941435Z     },
2026-06-15T13:33:59.3941539Z     {
2026-06-15T13:33:59.3941693Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T13:33:59.3944501Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T13:33:59.3944641Z       "requiredStages": [
2026-06-15T13:33:59.3944755Z         "doc",
2026-06-15T13:33:59.3944855Z         "impl",
2026-06-15T13:33:59.3944951Z         "unit",
2026-06-15T13:33:59.3945051Z         "int"
2026-06-15T13:33:59.3945160Z       ],
2026-06-15T13:33:59.3945266Z       "stages": {
2026-06-15T13:33:59.3945519Z         "doc": {
2026-06-15T13:33:59.3945637Z           "complete": true,
2026-06-15T13:33:59.3945746Z           "evidence": [
2026-06-15T13:33:59.3945857Z             {
2026-06-15T13:33:59.3945999Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.3946117Z               "line": 295
2026-06-15T13:33:59.3946218Z             }
2026-06-15T13:33:59.3946316Z           ]
2026-06-15T13:33:59.3946425Z         },
2026-06-15T13:33:59.3946535Z         "impl": {
2026-06-15T13:33:59.3946663Z           "complete": true,
2026-06-15T13:33:59.3946874Z           "evidence": [
2026-06-15T13:33:59.3946974Z             {
2026-06-15T13:33:59.3947150Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.3947260Z               "line": 108
2026-06-15T13:33:59.3947368Z             },
2026-06-15T13:33:59.3947460Z             {
2026-06-15T13:33:59.3947608Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3947731Z               "line": 794
2026-06-15T13:33:59.3947837Z             },
2026-06-15T13:33:59.3947941Z             {
2026-06-15T13:33:59.3948090Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.3948227Z               "line": 994
2026-06-15T13:33:59.3948327Z             },
2026-06-15T13:33:59.3948438Z             {
2026-06-15T13:33:59.3948593Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3948698Z               "line": 23
2026-06-15T13:33:59.3948799Z             },
2026-06-15T13:33:59.3948901Z             {
2026-06-15T13:33:59.3949145Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3949249Z               "line": 113
2026-06-15T13:33:59.3949354Z             },
2026-06-15T13:33:59.3949455Z             {
2026-06-15T13:33:59.3949602Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3949708Z               "line": 158
2026-06-15T13:33:59.3949812Z             },
2026-06-15T13:33:59.3949907Z             {
2026-06-15T13:33:59.3950046Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3950165Z               "line": 215
2026-06-15T13:33:59.3950265Z             },
2026-06-15T13:33:59.3950371Z             {
2026-06-15T13:33:59.3950527Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3950637Z               "line": 247
2026-06-15T13:33:59.3950746Z             },
2026-06-15T13:33:59.3950846Z             {
2026-06-15T13:33:59.3951001Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3951122Z               "line": 261
2026-06-15T13:33:59.3951223Z             },
2026-06-15T13:33:59.3951325Z             {
2026-06-15T13:33:59.3951465Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3951589Z               "line": 306
2026-06-15T13:33:59.3951695Z             },
2026-06-15T13:33:59.3951799Z             {
2026-06-15T13:33:59.3951942Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3952052Z               "line": 333
2026-06-15T13:33:59.3952166Z             },
2026-06-15T13:33:59.3952258Z             {
2026-06-15T13:33:59.3952414Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3952529Z               "line": 345
2026-06-15T13:33:59.3952638Z             },
2026-06-15T13:33:59.3952743Z             {
2026-06-15T13:33:59.3952892Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3953010Z               "line": 359
2026-06-15T13:33:59.3953110Z             },
2026-06-15T13:33:59.3953217Z             {
2026-06-15T13:33:59.3953363Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3953478Z               "line": 386
2026-06-15T13:33:59.3953579Z             },
2026-06-15T13:33:59.3953673Z             {
2026-06-15T13:33:59.3953824Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3953934Z               "line": 629
2026-06-15T13:33:59.3954032Z             },
2026-06-15T13:33:59.3954137Z             {
2026-06-15T13:33:59.3954385Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3954495Z               "line": 958
2026-06-15T13:33:59.3954586Z             },
2026-06-15T13:33:59.3954685Z             {
2026-06-15T13:33:59.3954829Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3954948Z               "line": 178
2026-06-15T13:33:59.3955052Z             },
2026-06-15T13:33:59.3955153Z             {
2026-06-15T13:33:59.3955300Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3955511Z               "line": 590
2026-06-15T13:33:59.3955615Z             },
2026-06-15T13:33:59.3955715Z             {
2026-06-15T13:33:59.3955863Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3955978Z               "line": 662
2026-06-15T13:33:59.3956079Z             },
2026-06-15T13:33:59.3956183Z             {
2026-06-15T13:33:59.3956330Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3956455Z               "line": 674
2026-06-15T13:33:59.3956554Z             },
2026-06-15T13:33:59.3956663Z             {
2026-06-15T13:33:59.3956815Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3956927Z               "line": 1084
2026-06-15T13:33:59.3957033Z             },
2026-06-15T13:33:59.3957129Z             {
2026-06-15T13:33:59.3957275Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3957391Z               "line": 181
2026-06-15T13:33:59.3957501Z             },
2026-06-15T13:33:59.3957609Z             {
2026-06-15T13:33:59.3957754Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3957867Z               "line": 223
2026-06-15T13:33:59.3957967Z             },
2026-06-15T13:33:59.3958073Z             {
2026-06-15T13:33:59.3958215Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3958326Z               "line": 234
2026-06-15T13:33:59.3958421Z             },
2026-06-15T13:33:59.3958521Z             {
2026-06-15T13:33:59.3958669Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.3958782Z               "line": 260
2026-06-15T13:33:59.3958883Z             },
2026-06-15T13:33:59.3959074Z             {
2026-06-15T13:33:59.3959225Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3959339Z               "line": 56
2026-06-15T13:33:59.3959447Z             },
2026-06-15T13:33:59.3959547Z             {
2026-06-15T13:33:59.3959700Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3959813Z               "line": 188
2026-06-15T13:33:59.3959919Z             },
2026-06-15T13:33:59.3960019Z             {
2026-06-15T13:33:59.3960176Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T13:33:59.3960287Z               "line": 63
2026-06-15T13:33:59.3960382Z             },
2026-06-15T13:33:59.3960486Z             {
2026-06-15T13:33:59.3960635Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3960753Z               "line": 258
2026-06-15T13:33:59.3960858Z             },
2026-06-15T13:33:59.3960955Z             {
2026-06-15T13:33:59.3961091Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.3961203Z               "line": 424
2026-06-15T13:33:59.3961307Z             },
2026-06-15T13:33:59.3961406Z             {
2026-06-15T13:33:59.3961546Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.3961649Z               "line": 1745
2026-06-15T13:33:59.3961750Z             }
2026-06-15T13:33:59.3961856Z           ]
2026-06-15T13:33:59.3961964Z         },
2026-06-15T13:33:59.3962064Z         "int": {
2026-06-15T13:33:59.3962183Z           "complete": true,
2026-06-15T13:33:59.3962298Z           "evidence": [
2026-06-15T13:33:59.3962392Z             {
2026-06-15T13:33:59.3962546Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:33:59.3962645Z               "line": 57
2026-06-15T13:33:59.3962750Z             },
2026-06-15T13:33:59.3962951Z             {
2026-06-15T13:33:59.3963099Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T13:33:59.3963199Z               "line": 41
2026-06-15T13:33:59.3963303Z             }
2026-06-15T13:33:59.3963403Z           ]
2026-06-15T13:33:59.3963505Z         },
2026-06-15T13:33:59.3963618Z         "unit": {
2026-06-15T13:33:59.3963733Z           "complete": true,
2026-06-15T13:33:59.3963847Z           "evidence": [
2026-06-15T13:33:59.3963951Z             {
2026-06-15T13:33:59.3964096Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.3964303Z               "line": 532
2026-06-15T13:33:59.3964408Z             },
2026-06-15T13:33:59.3964508Z             {
2026-06-15T13:33:59.3964653Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.3964774Z               "line": 755
2026-06-15T13:33:59.3964873Z             },
2026-06-15T13:33:59.3964968Z             {
2026-06-15T13:33:59.3965117Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3965240Z               "line": 1027
2026-06-15T13:33:59.3965331Z             },
2026-06-15T13:33:59.3965432Z             {
2026-06-15T13:33:59.3965589Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3965695Z               "line": 1061
2026-06-15T13:33:59.3965794Z             },
2026-06-15T13:33:59.3965898Z             {
2026-06-15T13:33:59.3966043Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3966152Z               "line": 1103
2026-06-15T13:33:59.3966251Z             },
2026-06-15T13:33:59.3966362Z             {
2026-06-15T13:33:59.3966504Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3966615Z               "line": 1175
2026-06-15T13:33:59.3966724Z             },
2026-06-15T13:33:59.3966828Z             {
2026-06-15T13:33:59.3966978Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3967081Z               "line": 1188
2026-06-15T13:33:59.3967185Z             },
2026-06-15T13:33:59.3967290Z             {
2026-06-15T13:33:59.3967431Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3967549Z               "line": 1211
2026-06-15T13:33:59.3967650Z             },
2026-06-15T13:33:59.3967751Z             {
2026-06-15T13:33:59.3967898Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3968009Z               "line": 1237
2026-06-15T13:33:59.3968112Z             },
2026-06-15T13:33:59.3968213Z             {
2026-06-15T13:33:59.3968370Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3968484Z               "line": 1251
2026-06-15T13:33:59.3968590Z             },
2026-06-15T13:33:59.3968694Z             {
2026-06-15T13:33:59.3968842Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3969028Z               "line": 1275
2026-06-15T13:33:59.3969128Z             },
2026-06-15T13:33:59.3969234Z             {
2026-06-15T13:33:59.3969371Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3969501Z               "line": 1407
2026-06-15T13:33:59.3969601Z             },
2026-06-15T13:33:59.3969695Z             {
2026-06-15T13:33:59.3969847Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3969951Z               "line": 1583
2026-06-15T13:33:59.3970059Z             },
2026-06-15T13:33:59.3970160Z             {
2026-06-15T13:33:59.3970308Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3970431Z               "line": 1638
2026-06-15T13:33:59.3970537Z             },
2026-06-15T13:33:59.3970633Z             {
2026-06-15T13:33:59.3970774Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3970899Z               "line": 1684
2026-06-15T13:33:59.3971003Z             },
2026-06-15T13:33:59.3971104Z             {
2026-06-15T13:33:59.3971256Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3971356Z               "line": 1729
2026-06-15T13:33:59.3971552Z             },
2026-06-15T13:33:59.3971656Z             {
2026-06-15T13:33:59.3971806Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3971918Z               "line": 1773
2026-06-15T13:33:59.3972014Z             },
2026-06-15T13:33:59.3972116Z             {
2026-06-15T13:33:59.3972257Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.3972373Z               "line": 1815
2026-06-15T13:33:59.3972474Z             },
2026-06-15T13:33:59.3972685Z             {
2026-06-15T13:33:59.3972835Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.3972938Z               "line": 1418
2026-06-15T13:33:59.3973044Z             },
2026-06-15T13:33:59.3973134Z             {
2026-06-15T13:33:59.3973291Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3973397Z               "line": 217
2026-06-15T13:33:59.3973497Z             },
2026-06-15T13:33:59.3973601Z             {
2026-06-15T13:33:59.3973750Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3973863Z               "line": 233
2026-06-15T13:33:59.3973963Z             },
2026-06-15T13:33:59.3974065Z             {
2026-06-15T13:33:59.3974206Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3974322Z               "line": 254
2026-06-15T13:33:59.3974431Z             },
2026-06-15T13:33:59.3974535Z             {
2026-06-15T13:33:59.3974690Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3974802Z               "line": 265
2026-06-15T13:33:59.3974906Z             },
2026-06-15T13:33:59.3975007Z             {
2026-06-15T13:33:59.3975157Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3975272Z               "line": 278
2026-06-15T13:33:59.3975368Z             },
2026-06-15T13:33:59.3975467Z             {
2026-06-15T13:33:59.3975615Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3975735Z               "line": 289
2026-06-15T13:33:59.3975839Z             },
2026-06-15T13:33:59.3975940Z             {
2026-06-15T13:33:59.3976087Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3976201Z               "line": 301
2026-06-15T13:33:59.3976302Z             },
2026-06-15T13:33:59.3976402Z             {
2026-06-15T13:33:59.3976545Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3976654Z               "line": 312
2026-06-15T13:33:59.3976749Z             },
2026-06-15T13:33:59.3976850Z             {
2026-06-15T13:33:59.3976993Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3977107Z               "line": 323
2026-06-15T13:33:59.3977209Z             },
2026-06-15T13:33:59.3977312Z             {
2026-06-15T13:33:59.3977455Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3977557Z               "line": 332
2026-06-15T13:33:59.3977660Z             },
2026-06-15T13:33:59.3977768Z             {
2026-06-15T13:33:59.3977912Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3978015Z               "line": 342
2026-06-15T13:33:59.3978124Z             },
2026-06-15T13:33:59.3978215Z             {
2026-06-15T13:33:59.3978363Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T13:33:59.3978477Z               "line": 358
2026-06-15T13:33:59.3978578Z             },
2026-06-15T13:33:59.3978682Z             {
2026-06-15T13:33:59.3978822Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3979035Z               "line": 708
2026-06-15T13:33:59.3979136Z             },
2026-06-15T13:33:59.3979245Z             {
2026-06-15T13:33:59.3979393Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.3979508Z               "line": 744
2026-06-15T13:33:59.3979611Z             },
2026-06-15T13:33:59.3979707Z             {
2026-06-15T13:33:59.3979856Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.3980085Z               "line": 966
2026-06-15T13:33:59.3980185Z             },
2026-06-15T13:33:59.3980283Z             {
2026-06-15T13:33:59.3980427Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:33:59.3980549Z               "line": 143
2026-06-15T13:33:59.3980638Z             },
2026-06-15T13:33:59.3980744Z             {
2026-06-15T13:33:59.3980887Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:33:59.3980991Z               "line": 222
2026-06-15T13:33:59.3981183Z             },
2026-06-15T13:33:59.3981282Z             {
2026-06-15T13:33:59.3981426Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T13:33:59.3981536Z               "line": 291
2026-06-15T13:33:59.3981640Z             },
2026-06-15T13:33:59.3981741Z             {
2026-06-15T13:33:59.3981883Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T13:33:59.3982003Z               "line": 17
2026-06-15T13:33:59.3982108Z             },
2026-06-15T13:33:59.3982212Z             {
2026-06-15T13:33:59.3982356Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T13:33:59.3982474Z               "line": 104
2026-06-15T13:33:59.3982579Z             }
2026-06-15T13:33:59.3982681Z           ]
2026-06-15T13:33:59.3982779Z         }
2026-06-15T13:33:59.3982870Z       }
2026-06-15T13:33:59.3982967Z     },
2026-06-15T13:33:59.3983066Z     {
2026-06-15T13:33:59.3983212Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T13:33:59.3983428Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T13:33:59.3983546Z       "requiredStages": [
2026-06-15T13:33:59.3983647Z         "impl",
2026-06-15T13:33:59.3983752Z         "unit"
2026-06-15T13:33:59.3983846Z       ],
2026-06-15T13:33:59.3983952Z       "stages": {
2026-06-15T13:33:59.3984052Z         "doc": {
2026-06-15T13:33:59.3984175Z           "complete": false,
2026-06-15T13:33:59.3984286Z           "evidence": []
2026-06-15T13:33:59.3984385Z         },
2026-06-15T13:33:59.3984495Z         "impl": {
2026-06-15T13:33:59.3984616Z           "complete": true,
2026-06-15T13:33:59.3984714Z           "evidence": [
2026-06-15T13:33:59.3984819Z             {
2026-06-15T13:33:59.3984963Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3985072Z               "line": 168
2026-06-15T13:33:59.3985177Z             },
2026-06-15T13:33:59.3985278Z             {
2026-06-15T13:33:59.3985415Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3985524Z               "line": 18
2026-06-15T13:33:59.3985628Z             },
2026-06-15T13:33:59.3985736Z             {
2026-06-15T13:33:59.3985875Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3985994Z               "line": 100
2026-06-15T13:33:59.3986089Z             }
2026-06-15T13:33:59.3986194Z           ]
2026-06-15T13:33:59.3986290Z         },
2026-06-15T13:33:59.3986384Z         "int": {
2026-06-15T13:33:59.3986510Z           "complete": false,
2026-06-15T13:33:59.3986609Z           "evidence": []
2026-06-15T13:33:59.3986713Z         },
2026-06-15T13:33:59.3986820Z         "unit": {
2026-06-15T13:33:59.3986938Z           "complete": true,
2026-06-15T13:33:59.3987042Z           "evidence": [
2026-06-15T13:33:59.3987144Z             {
2026-06-15T13:33:59.3987291Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.3987400Z               "line": 733
2026-06-15T13:33:59.3987502Z             },
2026-06-15T13:33:59.3987605Z             {
2026-06-15T13:33:59.3987750Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3987844Z               "line": 161
2026-06-15T13:33:59.3987949Z             },
2026-06-15T13:33:59.3988050Z             {
2026-06-15T13:33:59.3988192Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.3988291Z               "line": 233
2026-06-15T13:33:59.3988396Z             }
2026-06-15T13:33:59.3988500Z           ]
2026-06-15T13:33:59.3988594Z         }
2026-06-15T13:33:59.3988699Z       }
2026-06-15T13:33:59.3988880Z     },
2026-06-15T13:33:59.3989037Z     {
2026-06-15T13:33:59.3989186Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T13:33:59.3989648Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T13:33:59.3989767Z       "requiredStages": [
2026-06-15T13:33:59.3989876Z         "impl",
2026-06-15T13:33:59.3989977Z         "unit"
2026-06-15T13:33:59.3990082Z       ],
2026-06-15T13:33:59.3990282Z       "stages": {
2026-06-15T13:33:59.3990392Z         "doc": {
2026-06-15T13:33:59.3990496Z           "complete": true,
2026-06-15T13:33:59.3990612Z           "evidence": [
2026-06-15T13:33:59.3990716Z             {
2026-06-15T13:33:59.3990848Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.3990967Z               "line": 220
2026-06-15T13:33:59.3991071Z             }
2026-06-15T13:33:59.3991170Z           ]
2026-06-15T13:33:59.3991280Z         },
2026-06-15T13:33:59.3991390Z         "impl": {
2026-06-15T13:33:59.3991508Z           "complete": true,
2026-06-15T13:33:59.3991609Z           "evidence": [
2026-06-15T13:33:59.3991705Z             {
2026-06-15T13:33:59.3991851Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.3991972Z               "line": 311
2026-06-15T13:33:59.3992076Z             },
2026-06-15T13:33:59.3992175Z             {
2026-06-15T13:33:59.3992324Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.3992448Z               "line": 257
2026-06-15T13:33:59.3992548Z             },
2026-06-15T13:33:59.3992653Z             {
2026-06-15T13:33:59.3992805Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.3992916Z               "line": 405
2026-06-15T13:33:59.3993011Z             },
2026-06-15T13:33:59.3993120Z             {
2026-06-15T13:33:59.3993265Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.3993377Z               "line": 77
2026-06-15T13:33:59.3993488Z             }
2026-06-15T13:33:59.3993589Z           ]
2026-06-15T13:33:59.3993692Z         },
2026-06-15T13:33:59.3993787Z         "int": {
2026-06-15T13:33:59.3993912Z           "complete": false,
2026-06-15T13:33:59.3994026Z           "evidence": []
2026-06-15T13:33:59.3994125Z         },
2026-06-15T13:33:59.3994227Z         "unit": {
2026-06-15T13:33:59.3994345Z           "complete": true,
2026-06-15T13:33:59.3994449Z           "evidence": [
2026-06-15T13:33:59.3994551Z             {
2026-06-15T13:33:59.3994711Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.3994813Z               "line": 478
2026-06-15T13:33:59.3994908Z             },
2026-06-15T13:33:59.3995008Z             {
2026-06-15T13:33:59.3995156Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.3995265Z               "line": 516
2026-06-15T13:33:59.3995370Z             },
2026-06-15T13:33:59.3995471Z             {
2026-06-15T13:33:59.3995617Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.3995737Z               "line": 166
2026-06-15T13:33:59.3995843Z             }
2026-06-15T13:33:59.3995946Z           ]
2026-06-15T13:33:59.3996050Z         }
2026-06-15T13:33:59.3996156Z       }
2026-06-15T13:33:59.3996258Z     },
2026-06-15T13:33:59.3996339Z     {
2026-06-15T13:33:59.3996483Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T13:33:59.3997079Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T13:33:59.3997212Z       "requiredStages": [
2026-06-15T13:33:59.3997321Z         "impl",
2026-06-15T13:33:59.3997418Z         "unit"
2026-06-15T13:33:59.3997523Z       ],
2026-06-15T13:33:59.3997627Z       "stages": {
2026-06-15T13:33:59.3997728Z         "doc": {
2026-06-15T13:33:59.3997837Z           "complete": false,
2026-06-15T13:33:59.3998057Z           "evidence": []
2026-06-15T13:33:59.3998155Z         },
2026-06-15T13:33:59.3998266Z         "impl": {
2026-06-15T13:33:59.3998386Z           "complete": true,
2026-06-15T13:33:59.3998494Z           "evidence": [
2026-06-15T13:33:59.3998605Z             {
2026-06-15T13:33:59.3998748Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:33:59.3998856Z               "line": 22
2026-06-15T13:33:59.3999033Z             },
2026-06-15T13:33:59.3999125Z             {
2026-06-15T13:33:59.3999379Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.3999487Z               "line": 487
2026-06-15T13:33:59.3999588Z             },
2026-06-15T13:33:59.3999689Z             {
2026-06-15T13:33:59.3999840Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:33:59.3999956Z               "line": 17
2026-06-15T13:33:59.4000061Z             },
2026-06-15T13:33:59.4000160Z             {
2026-06-15T13:33:59.4000304Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:33:59.4000432Z               "line": 147
2026-06-15T13:33:59.4000532Z             },
2026-06-15T13:33:59.4000628Z             {
2026-06-15T13:33:59.4000794Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4000910Z               "line": 226
2026-06-15T13:33:59.4001013Z             },
2026-06-15T13:33:59.4001109Z             {
2026-06-15T13:33:59.4001267Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4001371Z               "line": 251
2026-06-15T13:33:59.4001475Z             },
2026-06-15T13:33:59.4001580Z             {
2026-06-15T13:33:59.4001721Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4001840Z               "line": 277
2026-06-15T13:33:59.4001941Z             },
2026-06-15T13:33:59.4002040Z             {
2026-06-15T13:33:59.4002194Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4002298Z               "line": 124
2026-06-15T13:33:59.4002402Z             },
2026-06-15T13:33:59.4002499Z             {
2026-06-15T13:33:59.4002646Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4002755Z               "line": 224
2026-06-15T13:33:59.4002851Z             }
2026-06-15T13:33:59.4002956Z           ]
2026-06-15T13:33:59.4003051Z         },
2026-06-15T13:33:59.4003162Z         "int": {
2026-06-15T13:33:59.4003275Z           "complete": false,
2026-06-15T13:33:59.4003394Z           "evidence": []
2026-06-15T13:33:59.4003500Z         },
2026-06-15T13:33:59.4003604Z         "unit": {
2026-06-15T13:33:59.4003719Z           "complete": true,
2026-06-15T13:33:59.4003834Z           "evidence": [
2026-06-15T13:33:59.4003938Z             {
2026-06-15T13:33:59.4004087Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:33:59.4004191Z               "line": 63
2026-06-15T13:33:59.4004285Z             },
2026-06-15T13:33:59.4004394Z             {
2026-06-15T13:33:59.4004534Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:33:59.4004656Z               "line": 73
2026-06-15T13:33:59.4004757Z             },
2026-06-15T13:33:59.4004858Z             {
2026-06-15T13:33:59.4005019Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T13:33:59.4005130Z               "line": 85
2026-06-15T13:33:59.4005234Z             },
2026-06-15T13:33:59.4005334Z             {
2026-06-15T13:33:59.4005482Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4005596Z               "line": 346
2026-06-15T13:33:59.4005707Z             },
2026-06-15T13:33:59.4005811Z             {
2026-06-15T13:33:59.4005954Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:33:59.4006069Z               "line": 281
2026-06-15T13:33:59.4006172Z             },
2026-06-15T13:33:59.4006274Z             {
2026-06-15T13:33:59.4006422Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:33:59.4006535Z               "line": 322
2026-06-15T13:33:59.4006753Z             },
2026-06-15T13:33:59.4006856Z             {
2026-06-15T13:33:59.4007004Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T13:33:59.4007124Z               "line": 360
2026-06-15T13:33:59.4007223Z             },
2026-06-15T13:33:59.4007324Z             {
2026-06-15T13:33:59.4007476Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4007601Z               "line": 688
2026-06-15T13:33:59.4007701Z             },
2026-06-15T13:33:59.4007805Z             {
2026-06-15T13:33:59.4008025Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4008129Z               "line": 397
2026-06-15T13:33:59.4008235Z             },
2026-06-15T13:33:59.4008335Z             {
2026-06-15T13:33:59.4008487Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4008588Z               "line": 440
2026-06-15T13:33:59.4008692Z             }
2026-06-15T13:33:59.4008797Z           ]
2026-06-15T13:33:59.4008898Z         }
2026-06-15T13:33:59.4009064Z       }
2026-06-15T13:33:59.4009165Z     },
2026-06-15T13:33:59.4009266Z     {
2026-06-15T13:33:59.4009402Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T13:33:59.4009653Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T13:33:59.4009776Z       "requiredStages": [
2026-06-15T13:33:59.4009881Z         "impl",
2026-06-15T13:33:59.4009982Z         "unit"
2026-06-15T13:33:59.4010081Z       ],
2026-06-15T13:33:59.4010187Z       "stages": {
2026-06-15T13:33:59.4010306Z         "doc": {
2026-06-15T13:33:59.4010429Z           "complete": false,
2026-06-15T13:33:59.4010545Z           "evidence": []
2026-06-15T13:33:59.4010644Z         },
2026-06-15T13:33:59.4010753Z         "impl": {
2026-06-15T13:33:59.4010869Z           "complete": true,
2026-06-15T13:33:59.4010982Z           "evidence": [
2026-06-15T13:33:59.4011077Z             {
2026-06-15T13:33:59.4011230Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:33:59.4011340Z               "line": 169
2026-06-15T13:33:59.4011441Z             }
2026-06-15T13:33:59.4011545Z           ]
2026-06-15T13:33:59.4011645Z         },
2026-06-15T13:33:59.4011747Z         "int": {
2026-06-15T13:33:59.4011860Z           "complete": true,
2026-06-15T13:33:59.4011974Z           "evidence": [
2026-06-15T13:33:59.4012083Z             {
2026-06-15T13:33:59.4012219Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T13:33:59.4012328Z               "line": 44
2026-06-15T13:33:59.4012434Z             },
2026-06-15T13:33:59.4012534Z             {
2026-06-15T13:33:59.4012662Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T13:33:59.4012768Z               "line": 66
2026-06-15T13:33:59.4012868Z             }
2026-06-15T13:33:59.4012972Z           ]
2026-06-15T13:33:59.4013074Z         },
2026-06-15T13:33:59.4013173Z         "unit": {
2026-06-15T13:33:59.4013296Z           "complete": true,
2026-06-15T13:33:59.4013407Z           "evidence": [
2026-06-15T13:33:59.4013502Z             {
2026-06-15T13:33:59.4013649Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:33:59.4013759Z               "line": 186
2026-06-15T13:33:59.4013864Z             },
2026-06-15T13:33:59.4013964Z             {
2026-06-15T13:33:59.4014102Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:33:59.4014207Z               "line": 238
2026-06-15T13:33:59.4014308Z             },
2026-06-15T13:33:59.4014413Z             {
2026-06-15T13:33:59.4014551Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T13:33:59.4014671Z               "line": 266
2026-06-15T13:33:59.4014774Z             }
2026-06-15T13:33:59.4014878Z           ]
2026-06-15T13:33:59.4014969Z         }
2026-06-15T13:33:59.4015070Z       }
2026-06-15T13:33:59.4015174Z     },
2026-06-15T13:33:59.4015274Z     {
2026-06-15T13:33:59.4015423Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T13:33:59.4015885Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T13:33:59.4016100Z       "requiredStages": [
2026-06-15T13:33:59.4016209Z         "impl",
2026-06-15T13:33:59.4016314Z         "unit",
2026-06-15T13:33:59.4016414Z         "int"
2026-06-15T13:33:59.4016519Z       ],
2026-06-15T13:33:59.4016629Z       "stages": {
2026-06-15T13:33:59.4016733Z         "doc": {
2026-06-15T13:33:59.4016858Z           "complete": false,
2026-06-15T13:33:59.4016972Z           "evidence": []
2026-06-15T13:33:59.4017161Z         },
2026-06-15T13:33:59.4017266Z         "impl": {
2026-06-15T13:33:59.4017379Z           "complete": true,
2026-06-15T13:33:59.4017492Z           "evidence": [
2026-06-15T13:33:59.4017594Z             {
2026-06-15T13:33:59.4017740Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4017851Z               "line": 152
2026-06-15T13:33:59.4017951Z             },
2026-06-15T13:33:59.4018055Z             {
2026-06-15T13:33:59.4018209Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4018332Z               "line": 176
2026-06-15T13:33:59.4018437Z             },
2026-06-15T13:33:59.4018538Z             {
2026-06-15T13:33:59.4018685Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4018790Z               "line": 79
2026-06-15T13:33:59.4018895Z             },
2026-06-15T13:33:59.4019066Z             {
2026-06-15T13:33:59.4019206Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4019315Z               "line": 52
2026-06-15T13:33:59.4019425Z             },
2026-06-15T13:33:59.4019525Z             {
2026-06-15T13:33:59.4019672Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4019788Z               "line": 164
2026-06-15T13:33:59.4019882Z             },
2026-06-15T13:33:59.4019986Z             {
2026-06-15T13:33:59.4020124Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4020241Z               "line": 27
2026-06-15T13:33:59.4020350Z             },
2026-06-15T13:33:59.4020451Z             {
2026-06-15T13:33:59.4020603Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4020703Z               "line": 79
2026-06-15T13:33:59.4020800Z             },
2026-06-15T13:33:59.4020899Z             {
2026-06-15T13:33:59.4023785Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4023910Z               "line": 102
2026-06-15T13:33:59.4024014Z             },
2026-06-15T13:33:59.4024133Z             {
2026-06-15T13:33:59.4024287Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4024401Z               "line": 116
2026-06-15T13:33:59.4024500Z             }
2026-06-15T13:33:59.4024597Z           ]
2026-06-15T13:33:59.4024691Z         },
2026-06-15T13:33:59.4024796Z         "int": {
2026-06-15T13:33:59.4024917Z           "complete": true,
2026-06-15T13:33:59.4025024Z           "evidence": [
2026-06-15T13:33:59.4025130Z             {
2026-06-15T13:33:59.4025302Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T13:33:59.4025415Z               "line": 38
2026-06-15T13:33:59.4025519Z             }
2026-06-15T13:33:59.4025616Z           ]
2026-06-15T13:33:59.4025720Z         },
2026-06-15T13:33:59.4025825Z         "unit": {
2026-06-15T13:33:59.4025940Z           "complete": true,
2026-06-15T13:33:59.4026049Z           "evidence": [
2026-06-15T13:33:59.4026149Z             {
2026-06-15T13:33:59.4026307Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4026425Z               "line": 628
2026-06-15T13:33:59.4026531Z             },
2026-06-15T13:33:59.4026631Z             {
2026-06-15T13:33:59.4026774Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4026884Z               "line": 378
2026-06-15T13:33:59.4026984Z             },
2026-06-15T13:33:59.4027084Z             {
2026-06-15T13:33:59.4027232Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4027486Z               "line": 124
2026-06-15T13:33:59.4027579Z             },
2026-06-15T13:33:59.4027679Z             {
2026-06-15T13:33:59.4027826Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4027949Z               "line": 143
2026-06-15T13:33:59.4028048Z             },
2026-06-15T13:33:59.4028144Z             {
2026-06-15T13:33:59.4028287Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4028391Z               "line": 160
2026-06-15T13:33:59.4028493Z             },
2026-06-15T13:33:59.4028692Z             {
2026-06-15T13:33:59.4028831Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4029041Z               "line": 187
2026-06-15T13:33:59.4029141Z             },
2026-06-15T13:33:59.4029231Z             {
2026-06-15T13:33:59.4029380Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T13:33:59.4029484Z               "line": 206
2026-06-15T13:33:59.4029584Z             },
2026-06-15T13:33:59.4029685Z             {
2026-06-15T13:33:59.4029836Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4029941Z               "line": 229
2026-06-15T13:33:59.4030043Z             }
2026-06-15T13:33:59.4030146Z           ]
2026-06-15T13:33:59.4030246Z         }
2026-06-15T13:33:59.4030343Z       }
2026-06-15T13:33:59.4030433Z     },
2026-06-15T13:33:59.4030536Z     {
2026-06-15T13:33:59.4030684Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T13:33:59.4031392Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T13:33:59.4031516Z       "requiredStages": [
2026-06-15T13:33:59.4031622Z         "impl",
2026-06-15T13:33:59.4031721Z         "unit"
2026-06-15T13:33:59.4031825Z       ],
2026-06-15T13:33:59.4031927Z       "stages": {
2026-06-15T13:33:59.4032032Z         "doc": {
2026-06-15T13:33:59.4032160Z           "complete": false,
2026-06-15T13:33:59.4032275Z           "evidence": []
2026-06-15T13:33:59.4032379Z         },
2026-06-15T13:33:59.4032479Z         "impl": {
2026-06-15T13:33:59.4032585Z           "complete": true,
2026-06-15T13:33:59.4032703Z           "evidence": [
2026-06-15T13:33:59.4032808Z             {
2026-06-15T13:33:59.4032962Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4033065Z               "line": 621
2026-06-15T13:33:59.4033174Z             },
2026-06-15T13:33:59.4033275Z             {
2026-06-15T13:33:59.4033415Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4033530Z               "line": 834
2026-06-15T13:33:59.4033631Z             }
2026-06-15T13:33:59.4033734Z           ]
2026-06-15T13:33:59.4033835Z         },
2026-06-15T13:33:59.4033945Z         "int": {
2026-06-15T13:33:59.4034063Z           "complete": false,
2026-06-15T13:33:59.4034169Z           "evidence": []
2026-06-15T13:33:59.4034264Z         },
2026-06-15T13:33:59.4034368Z         "unit": {
2026-06-15T13:33:59.4034484Z           "complete": true,
2026-06-15T13:33:59.4034593Z           "evidence": [
2026-06-15T13:33:59.4034697Z             {
2026-06-15T13:33:59.4034857Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:33:59.4034970Z               "line": 161
2026-06-15T13:33:59.4035075Z             }
2026-06-15T13:33:59.4035171Z           ]
2026-06-15T13:33:59.4035274Z         }
2026-06-15T13:33:59.4035375Z       }
2026-06-15T13:33:59.4035472Z     },
2026-06-15T13:33:59.4035575Z     {
2026-06-15T13:33:59.4035700Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T13:33:59.4035922Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T13:33:59.4036041Z       "requiredStages": [
2026-06-15T13:33:59.4036133Z         "impl",
2026-06-15T13:33:59.4036237Z         "unit"
2026-06-15T13:33:59.4036341Z       ],
2026-06-15T13:33:59.4036438Z       "stages": {
2026-06-15T13:33:59.4036647Z         "doc": {
2026-06-15T13:33:59.4036777Z           "complete": false,
2026-06-15T13:33:59.4036886Z           "evidence": []
2026-06-15T13:33:59.4036990Z         },
2026-06-15T13:33:59.4037092Z         "impl": {
2026-06-15T13:33:59.4037205Z           "complete": true,
2026-06-15T13:33:59.4037310Z           "evidence": [
2026-06-15T13:33:59.4037407Z             {
2026-06-15T13:33:59.4037553Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4037664Z               "line": 40
2026-06-15T13:33:59.4037872Z             },
2026-06-15T13:33:59.4037973Z             {
2026-06-15T13:33:59.4038120Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4038224Z               "line": 103
2026-06-15T13:33:59.4038324Z             },
2026-06-15T13:33:59.4038429Z             {
2026-06-15T13:33:59.4038565Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4038676Z               "line": 218
2026-06-15T13:33:59.4038776Z             },
2026-06-15T13:33:59.4038880Z             {
2026-06-15T13:33:59.4039100Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4039218Z               "line": 323
2026-06-15T13:33:59.4039324Z             }
2026-06-15T13:33:59.4039419Z           ]
2026-06-15T13:33:59.4039519Z         },
2026-06-15T13:33:59.4039625Z         "int": {
2026-06-15T13:33:59.4039739Z           "complete": false,
2026-06-15T13:33:59.4039857Z           "evidence": []
2026-06-15T13:33:59.4039954Z         },
2026-06-15T13:33:59.4040058Z         "unit": {
2026-06-15T13:33:59.4040181Z           "complete": true,
2026-06-15T13:33:59.4040302Z           "evidence": [
2026-06-15T13:33:59.4040401Z             {
2026-06-15T13:33:59.4040545Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4040645Z               "line": 361
2026-06-15T13:33:59.4040744Z             },
2026-06-15T13:33:59.4040846Z             {
2026-06-15T13:33:59.4040984Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4041091Z               "line": 433
2026-06-15T13:33:59.4041187Z             },
2026-06-15T13:33:59.4041287Z             {
2026-06-15T13:33:59.4041418Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4041519Z               "line": 496
2026-06-15T13:33:59.4041619Z             },
2026-06-15T13:33:59.4041714Z             {
2026-06-15T13:33:59.4041858Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4041972Z               "line": 517
2026-06-15T13:33:59.4042076Z             }
2026-06-15T13:33:59.4042177Z           ]
2026-06-15T13:33:59.4042272Z         }
2026-06-15T13:33:59.4042372Z       }
2026-06-15T13:33:59.4042462Z     },
2026-06-15T13:33:59.4042554Z     {
2026-06-15T13:33:59.4042696Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T13:33:59.4042845Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T13:33:59.4042963Z       "requiredStages": [
2026-06-15T13:33:59.4043068Z         "impl",
2026-06-15T13:33:59.4043169Z         "unit"
2026-06-15T13:33:59.4043273Z       ],
2026-06-15T13:33:59.4043373Z       "stages": {
2026-06-15T13:33:59.4043479Z         "doc": {
2026-06-15T13:33:59.4043593Z           "complete": false,
2026-06-15T13:33:59.4043701Z           "evidence": []
2026-06-15T13:33:59.4043792Z         },
2026-06-15T13:33:59.4043900Z         "impl": {
2026-06-15T13:33:59.4044004Z           "complete": true,
2026-06-15T13:33:59.4044119Z           "evidence": [
2026-06-15T13:33:59.4044215Z             {
2026-06-15T13:33:59.4044357Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4044473Z               "line": 116
2026-06-15T13:33:59.4044572Z             },
2026-06-15T13:33:59.4044676Z             {
2026-06-15T13:33:59.4044815Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4044920Z               "line": 211
2026-06-15T13:33:59.4045015Z             }
2026-06-15T13:33:59.4045102Z           ]
2026-06-15T13:33:59.4045206Z         },
2026-06-15T13:33:59.4045306Z         "int": {
2026-06-15T13:33:59.4045549Z           "complete": false,
2026-06-15T13:33:59.4045659Z           "evidence": []
2026-06-15T13:33:59.4045760Z         },
2026-06-15T13:33:59.4045859Z         "unit": {
2026-06-15T13:33:59.4045964Z           "complete": true,
2026-06-15T13:33:59.4046075Z           "evidence": [
2026-06-15T13:33:59.4046173Z             {
2026-06-15T13:33:59.4046314Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4046427Z               "line": 388
2026-06-15T13:33:59.4046530Z             },
2026-06-15T13:33:59.4046726Z             {
2026-06-15T13:33:59.4046869Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4046969Z               "line": 469
2026-06-15T13:33:59.4047065Z             }
2026-06-15T13:33:59.4047169Z           ]
2026-06-15T13:33:59.4047265Z         }
2026-06-15T13:33:59.4047365Z       }
2026-06-15T13:33:59.4047465Z     },
2026-06-15T13:33:59.4047565Z     {
2026-06-15T13:33:59.4047713Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T13:33:59.4049007Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T13:33:59.4049130Z       "requiredStages": [
2026-06-15T13:33:59.4049231Z         "impl",
2026-06-15T13:33:59.4049341Z         "unit"
2026-06-15T13:33:59.4049445Z       ],
2026-06-15T13:33:59.4049541Z       "stages": {
2026-06-15T13:33:59.4049646Z         "doc": {
2026-06-15T13:33:59.4049760Z           "complete": true,
2026-06-15T13:33:59.4049861Z           "evidence": [
2026-06-15T13:33:59.4049965Z             {
2026-06-15T13:33:59.4050093Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4050209Z               "line": 206
2026-06-15T13:33:59.4050304Z             }
2026-06-15T13:33:59.4050413Z           ]
2026-06-15T13:33:59.4050514Z         },
2026-06-15T13:33:59.4050613Z         "impl": {
2026-06-15T13:33:59.4050732Z           "complete": true,
2026-06-15T13:33:59.4050834Z           "evidence": [
2026-06-15T13:33:59.4050928Z             {
2026-06-15T13:33:59.4051076Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4051186Z               "line": 593
2026-06-15T13:33:59.4051285Z             },
2026-06-15T13:33:59.4051381Z             {
2026-06-15T13:33:59.4051525Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4051643Z               "line": 685
2026-06-15T13:33:59.4051747Z             },
2026-06-15T13:33:59.4051847Z             {
2026-06-15T13:33:59.4052002Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.4052103Z               "line": 183
2026-06-15T13:33:59.4052208Z             }
2026-06-15T13:33:59.4052316Z           ]
2026-06-15T13:33:59.4052418Z         },
2026-06-15T13:33:59.4052518Z         "int": {
2026-06-15T13:33:59.4052641Z           "complete": false,
2026-06-15T13:33:59.4052756Z           "evidence": []
2026-06-15T13:33:59.4052856Z         },
2026-06-15T13:33:59.4052960Z         "unit": {
2026-06-15T13:33:59.4053081Z           "complete": true,
2026-06-15T13:33:59.4053194Z           "evidence": [
2026-06-15T13:33:59.4053294Z             {
2026-06-15T13:33:59.4053433Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4053542Z               "line": 734
2026-06-15T13:33:59.4053648Z             },
2026-06-15T13:33:59.4053748Z             {
2026-06-15T13:33:59.4053905Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:33:59.4054006Z               "line": 44
2026-06-15T13:33:59.4054106Z             },
2026-06-15T13:33:59.4054204Z             {
2026-06-15T13:33:59.4054361Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T13:33:59.4054465Z               "line": 52
2026-06-15T13:33:59.4054564Z             },
2026-06-15T13:33:59.4054766Z             {
2026-06-15T13:33:59.4054912Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:33:59.4055013Z               "line": 57
2026-06-15T13:33:59.4055114Z             },
2026-06-15T13:33:59.4055212Z             {
2026-06-15T13:33:59.4055371Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T13:33:59.4055485Z               "line": 54
2026-06-15T13:33:59.4055585Z             }
2026-06-15T13:33:59.4055681Z           ]
2026-06-15T13:33:59.4055776Z         }
2026-06-15T13:33:59.4055967Z       }
2026-06-15T13:33:59.4056076Z     },
2026-06-15T13:33:59.4056176Z     {
2026-06-15T13:33:59.4056320Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T13:33:59.4056559Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T13:33:59.4056677Z       "requiredStages": [
2026-06-15T13:33:59.4056777Z         "impl",
2026-06-15T13:33:59.4056878Z         "unit"
2026-06-15T13:33:59.4056978Z       ],
2026-06-15T13:33:59.4057086Z       "stages": {
2026-06-15T13:33:59.4057191Z         "doc": {
2026-06-15T13:33:59.4057311Z           "complete": false,
2026-06-15T13:33:59.4057409Z           "evidence": []
2026-06-15T13:33:59.4057510Z         },
2026-06-15T13:33:59.4057611Z         "impl": {
2026-06-15T13:33:59.4057734Z           "complete": true,
2026-06-15T13:33:59.4057830Z           "evidence": [
2026-06-15T13:33:59.4057935Z             {
2026-06-15T13:33:59.4058077Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4058193Z               "line": 26
2026-06-15T13:33:59.4058292Z             },
2026-06-15T13:33:59.4058392Z             {
2026-06-15T13:33:59.4058532Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4058645Z               "line": 135
2026-06-15T13:33:59.4058755Z             },
2026-06-15T13:33:59.4058851Z             {
2026-06-15T13:33:59.4059079Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4059190Z               "line": 26
2026-06-15T13:33:59.4059293Z             },
2026-06-15T13:33:59.4059401Z             {
2026-06-15T13:33:59.4059554Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4059662Z               "line": 237
2026-06-15T13:33:59.4059762Z             }
2026-06-15T13:33:59.4059863Z           ]
2026-06-15T13:33:59.4059967Z         },
2026-06-15T13:33:59.4060072Z         "int": {
2026-06-15T13:33:59.4060192Z           "complete": false,
2026-06-15T13:33:59.4060301Z           "evidence": []
2026-06-15T13:33:59.4060406Z         },
2026-06-15T13:33:59.4060511Z         "unit": {
2026-06-15T13:33:59.4060615Z           "complete": true,
2026-06-15T13:33:59.4060721Z           "evidence": [
2026-06-15T13:33:59.4060821Z             {
2026-06-15T13:33:59.4060963Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4061065Z               "line": 161
2026-06-15T13:33:59.4061169Z             },
2026-06-15T13:33:59.4061274Z             {
2026-06-15T13:33:59.4061413Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4061531Z               "line": 170
2026-06-15T13:33:59.4061622Z             },
2026-06-15T13:33:59.4061719Z             {
2026-06-15T13:33:59.4061850Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4061961Z               "line": 179
2026-06-15T13:33:59.4062062Z             },
2026-06-15T13:33:59.4062160Z             {
2026-06-15T13:33:59.4062307Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4062425Z               "line": 190
2026-06-15T13:33:59.4062529Z             },
2026-06-15T13:33:59.4062624Z             {
2026-06-15T13:33:59.4062763Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4062872Z               "line": 199
2026-06-15T13:33:59.4062968Z             },
2026-06-15T13:33:59.4063068Z             {
2026-06-15T13:33:59.4063206Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4063322Z               "line": 216
2026-06-15T13:33:59.4063535Z             },
2026-06-15T13:33:59.4063637Z             {
2026-06-15T13:33:59.4063783Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T13:33:59.4063893Z               "line": 242
2026-06-15T13:33:59.4063998Z             },
2026-06-15T13:33:59.4064097Z             {
2026-06-15T13:33:59.4064242Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4064356Z               "line": 295
2026-06-15T13:33:59.4064456Z             },
2026-06-15T13:33:59.4064557Z             {
2026-06-15T13:33:59.4064793Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4064913Z               "line": 244
2026-06-15T13:33:59.4065002Z             },
2026-06-15T13:33:59.4065105Z             {
2026-06-15T13:33:59.4065268Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4065377Z               "line": 265
2026-06-15T13:33:59.4065477Z             },
2026-06-15T13:33:59.4065578Z             {
2026-06-15T13:33:59.4065739Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4065860Z               "line": 293
2026-06-15T13:33:59.4065959Z             },
2026-06-15T13:33:59.4066059Z             {
2026-06-15T13:33:59.4066203Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4066302Z               "line": 317
2026-06-15T13:33:59.4066407Z             },
2026-06-15T13:33:59.4066508Z             {
2026-06-15T13:33:59.4066660Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T13:33:59.4066789Z               "line": 327
2026-06-15T13:33:59.4066894Z             },
2026-06-15T13:33:59.4066994Z             {
2026-06-15T13:33:59.4067147Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4067256Z               "line": 540
2026-06-15T13:33:59.4067360Z             }
2026-06-15T13:33:59.4067462Z           ]
2026-06-15T13:33:59.4067561Z         }
2026-06-15T13:33:59.4067665Z       }
2026-06-15T13:33:59.4067760Z     },
2026-06-15T13:33:59.4067871Z     {
2026-06-15T13:33:59.4068013Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T13:33:59.4068199Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T13:33:59.4068322Z       "requiredStages": [
2026-06-15T13:33:59.4068419Z         "impl",
2026-06-15T13:33:59.4068518Z         "unit"
2026-06-15T13:33:59.4068618Z       ],
2026-06-15T13:33:59.4068719Z       "stages": {
2026-06-15T13:33:59.4068815Z         "doc": {
2026-06-15T13:33:59.4069034Z           "complete": false,
2026-06-15T13:33:59.4069153Z           "evidence": []
2026-06-15T13:33:59.4069257Z         },
2026-06-15T13:33:59.4069359Z         "impl": {
2026-06-15T13:33:59.4069463Z           "complete": true,
2026-06-15T13:33:59.4069600Z           "evidence": [
2026-06-15T13:33:59.4069702Z             {
2026-06-15T13:33:59.4069848Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.4069947Z               "line": 25
2026-06-15T13:33:59.4070043Z             },
2026-06-15T13:33:59.4070151Z             {
2026-06-15T13:33:59.4070298Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4070409Z               "line": 26
2026-06-15T13:33:59.4070508Z             },
2026-06-15T13:33:59.4070608Z             {
2026-06-15T13:33:59.4070747Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4070861Z               "line": 159
2026-06-15T13:33:59.4070957Z             }
2026-06-15T13:33:59.4071061Z           ]
2026-06-15T13:33:59.4071161Z         },
2026-06-15T13:33:59.4071267Z         "int": {
2026-06-15T13:33:59.4071376Z           "complete": false,
2026-06-15T13:33:59.4071490Z           "evidence": []
2026-06-15T13:33:59.4071591Z         },
2026-06-15T13:33:59.4071700Z         "unit": {
2026-06-15T13:33:59.4071814Z           "complete": true,
2026-06-15T13:33:59.4071925Z           "evidence": [
2026-06-15T13:33:59.4072025Z             {
2026-06-15T13:33:59.4072167Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.4072274Z               "line": 188
2026-06-15T13:33:59.4072473Z             },
2026-06-15T13:33:59.4072574Z             {
2026-06-15T13:33:59.4072710Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.4072829Z               "line": 240
2026-06-15T13:33:59.4072930Z             },
2026-06-15T13:33:59.4073032Z             {
2026-06-15T13:33:59.4073180Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4073281Z               "line": 186
2026-06-15T13:33:59.4073380Z             }
2026-06-15T13:33:59.4073590Z           ]
2026-06-15T13:33:59.4073695Z         }
2026-06-15T13:33:59.4073794Z       }
2026-06-15T13:33:59.4073891Z     },
2026-06-15T13:33:59.4073991Z     {
2026-06-15T13:33:59.4074124Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T13:33:59.4074324Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T13:33:59.4074438Z       "requiredStages": [
2026-06-15T13:33:59.4074544Z         "impl",
2026-06-15T13:33:59.4074648Z         "unit"
2026-06-15T13:33:59.4074758Z       ],
2026-06-15T13:33:59.4074864Z       "stages": {
2026-06-15T13:33:59.4074963Z         "doc": {
2026-06-15T13:33:59.4075083Z           "complete": false,
2026-06-15T13:33:59.4075188Z           "evidence": []
2026-06-15T13:33:59.4075287Z         },
2026-06-15T13:33:59.4075391Z         "impl": {
2026-06-15T13:33:59.4075515Z           "complete": true,
2026-06-15T13:33:59.4075628Z           "evidence": [
2026-06-15T13:33:59.4075732Z             {
2026-06-15T13:33:59.4075871Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4075985Z               "line": 48
2026-06-15T13:33:59.4076085Z             },
2026-06-15T13:33:59.4076186Z             {
2026-06-15T13:33:59.4076328Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4076439Z               "line": 55
2026-06-15T13:33:59.4076538Z             },
2026-06-15T13:33:59.4076643Z             {
2026-06-15T13:33:59.4076782Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4076891Z               "line": 74
2026-06-15T13:33:59.4076986Z             },
2026-06-15T13:33:59.4077083Z             {
2026-06-15T13:33:59.4077225Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4077325Z               "line": 91
2026-06-15T13:33:59.4077431Z             }
2026-06-15T13:33:59.4077530Z           ]
2026-06-15T13:33:59.4077630Z         },
2026-06-15T13:33:59.4077736Z         "int": {
2026-06-15T13:33:59.4077858Z           "complete": false,
2026-06-15T13:33:59.4077970Z           "evidence": []
2026-06-15T13:33:59.4078070Z         },
2026-06-15T13:33:59.4078173Z         "unit": {
2026-06-15T13:33:59.4078291Z           "complete": true,
2026-06-15T13:33:59.4078403Z           "evidence": [
2026-06-15T13:33:59.4078507Z             {
2026-06-15T13:33:59.4078655Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4078774Z               "line": 149
2026-06-15T13:33:59.4078873Z             },
2026-06-15T13:33:59.4079055Z             {
2026-06-15T13:33:59.4079202Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4079313Z               "line": 166
2026-06-15T13:33:59.4079412Z             },
2026-06-15T13:33:59.4079512Z             {
2026-06-15T13:33:59.4079652Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4079746Z               "line": 176
2026-06-15T13:33:59.4079855Z             },
2026-06-15T13:33:59.4079957Z             {
2026-06-15T13:33:59.4080103Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4080218Z               "line": 194
2026-06-15T13:33:59.4080324Z             },
2026-06-15T13:33:59.4080427Z             {
2026-06-15T13:33:59.4080570Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4080688Z               "line": 207
2026-06-15T13:33:59.4080787Z             }
2026-06-15T13:33:59.4080883Z           ]
2026-06-15T13:33:59.4080983Z         }
2026-06-15T13:33:59.4081078Z       }
2026-06-15T13:33:59.4081192Z     },
2026-06-15T13:33:59.4081397Z     {
2026-06-15T13:33:59.4081541Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T13:33:59.4081764Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T13:33:59.4081885Z       "requiredStages": [
2026-06-15T13:33:59.4081984Z         "impl",
2026-06-15T13:33:59.4082088Z         "unit"
2026-06-15T13:33:59.4082190Z       ],
2026-06-15T13:33:59.4082284Z       "stages": {
2026-06-15T13:33:59.4082389Z         "doc": {
2026-06-15T13:33:59.4082500Z           "complete": false,
2026-06-15T13:33:59.4082708Z           "evidence": []
2026-06-15T13:33:59.4082805Z         },
2026-06-15T13:33:59.4082914Z         "impl": {
2026-06-15T13:33:59.4083033Z           "complete": true,
2026-06-15T13:33:59.4083134Z           "evidence": [
2026-06-15T13:33:59.4083238Z             {
2026-06-15T13:33:59.4083393Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4083514Z               "line": 416
2026-06-15T13:33:59.4083611Z             },
2026-06-15T13:33:59.4083720Z             {
2026-06-15T13:33:59.4083865Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4083964Z               "line": 26
2026-06-15T13:33:59.4084074Z             }
2026-06-15T13:33:59.4084174Z           ]
2026-06-15T13:33:59.4084273Z         },
2026-06-15T13:33:59.4084374Z         "int": {
2026-06-15T13:33:59.4084498Z           "complete": false,
2026-06-15T13:33:59.4084607Z           "evidence": []
2026-06-15T13:33:59.4084703Z         },
2026-06-15T13:33:59.4084808Z         "unit": {
2026-06-15T13:33:59.4084932Z           "complete": true,
2026-06-15T13:33:59.4085042Z           "evidence": [
2026-06-15T13:33:59.4085142Z             {
2026-06-15T13:33:59.4085290Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4085396Z               "line": 150
2026-06-15T13:33:59.4085494Z             },
2026-06-15T13:33:59.4085595Z             {
2026-06-15T13:33:59.4085735Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4085861Z               "line": 208
2026-06-15T13:33:59.4085960Z             }
2026-06-15T13:33:59.4086070Z           ]
2026-06-15T13:33:59.4086173Z         }
2026-06-15T13:33:59.4086273Z       }
2026-06-15T13:33:59.4086374Z     },
2026-06-15T13:33:59.4086465Z     {
2026-06-15T13:33:59.4086612Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T13:33:59.4088005Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T13:33:59.4088138Z       "requiredStages": [
2026-06-15T13:33:59.4088239Z         "doc",
2026-06-15T13:33:59.4088338Z         "impl",
2026-06-15T13:33:59.4088433Z         "unit"
2026-06-15T13:33:59.4088539Z       ],
2026-06-15T13:33:59.4088649Z       "stages": {
2026-06-15T13:33:59.4088752Z         "doc": {
2026-06-15T13:33:59.4088857Z           "complete": true,
2026-06-15T13:33:59.4089048Z           "evidence": [
2026-06-15T13:33:59.4089147Z             {
2026-06-15T13:33:59.4089296Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4089395Z               "line": 214
2026-06-15T13:33:59.4089500Z             }
2026-06-15T13:33:59.4089606Z           ]
2026-06-15T13:33:59.4089706Z         },
2026-06-15T13:33:59.4089839Z         "impl": {
2026-06-15T13:33:59.4089954Z           "complete": true,
2026-06-15T13:33:59.4090068Z           "evidence": [
2026-06-15T13:33:59.4090169Z             {
2026-06-15T13:33:59.4090325Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4090445Z               "line": 54
2026-06-15T13:33:59.4090541Z             },
2026-06-15T13:33:59.4090640Z             {
2026-06-15T13:33:59.4090779Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4091001Z               "line": 511
2026-06-15T13:33:59.4091106Z             },
2026-06-15T13:33:59.4091211Z             {
2026-06-15T13:33:59.4091366Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4091471Z               "line": 36
2026-06-15T13:33:59.4091573Z             },
2026-06-15T13:33:59.4091676Z             {
2026-06-15T13:33:59.4091825Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4091934Z               "line": 59
2026-06-15T13:33:59.4092125Z             },
2026-06-15T13:33:59.4092230Z             {
2026-06-15T13:33:59.4092372Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4092478Z               "line": 83
2026-06-15T13:33:59.4092578Z             },
2026-06-15T13:33:59.4092682Z             {
2026-06-15T13:33:59.4092830Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4092935Z               "line": 140
2026-06-15T13:33:59.4093046Z             },
2026-06-15T13:33:59.4093141Z             {
2026-06-15T13:33:59.4093283Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4093389Z               "line": 159
2026-06-15T13:33:59.4093498Z             },
2026-06-15T13:33:59.4093598Z             {
2026-06-15T13:33:59.4093742Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4093864Z               "line": 384
2026-06-15T13:33:59.4093963Z             },
2026-06-15T13:33:59.4094064Z             {
2026-06-15T13:33:59.4094214Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4094329Z               "line": 526
2026-06-15T13:33:59.4094429Z             },
2026-06-15T13:33:59.4094519Z             {
2026-06-15T13:33:59.4094683Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4094787Z               "line": 572
2026-06-15T13:33:59.4094891Z             },
2026-06-15T13:33:59.4094992Z             {
2026-06-15T13:33:59.4095135Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4095244Z               "line": 300
2026-06-15T13:33:59.4095345Z             },
2026-06-15T13:33:59.4095440Z             {
2026-06-15T13:33:59.4095563Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:33:59.4095674Z               "line": 41
2026-06-15T13:33:59.4095773Z             }
2026-06-15T13:33:59.4095878Z           ]
2026-06-15T13:33:59.4095980Z         },
2026-06-15T13:33:59.4096078Z         "int": {
2026-06-15T13:33:59.4096189Z           "complete": false,
2026-06-15T13:33:59.4096295Z           "evidence": []
2026-06-15T13:33:59.4096397Z         },
2026-06-15T13:33:59.4096497Z         "unit": {
2026-06-15T13:33:59.4096617Z           "complete": true,
2026-06-15T13:33:59.4096733Z           "evidence": [
2026-06-15T13:33:59.4096833Z             {
2026-06-15T13:33:59.4096972Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4097072Z               "line": 785
2026-06-15T13:33:59.4097177Z             },
2026-06-15T13:33:59.4097282Z             {
2026-06-15T13:33:59.4097420Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4097535Z               "line": 826
2026-06-15T13:33:59.4097630Z             },
2026-06-15T13:33:59.4097729Z             {
2026-06-15T13:33:59.4097874Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4097992Z               "line": 900
2026-06-15T13:33:59.4098092Z             }
2026-06-15T13:33:59.4098199Z           ]
2026-06-15T13:33:59.4098307Z         }
2026-06-15T13:33:59.4098407Z       }
2026-06-15T13:33:59.4098508Z     },
2026-06-15T13:33:59.4098602Z     {
2026-06-15T13:33:59.4098750Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T13:33:59.4100637Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T13:33:59.4100881Z       "requiredStages": [
2026-06-15T13:33:59.4100980Z         "impl",
2026-06-15T13:33:59.4101077Z         "unit"
2026-06-15T13:33:59.4101181Z       ],
2026-06-15T13:33:59.4101286Z       "stages": {
2026-06-15T13:33:59.4101473Z         "doc": {
2026-06-15T13:33:59.4101595Z           "complete": false,
2026-06-15T13:33:59.4101705Z           "evidence": []
2026-06-15T13:33:59.4101813Z         },
2026-06-15T13:33:59.4101912Z         "impl": {
2026-06-15T13:33:59.4102036Z           "complete": true,
2026-06-15T13:33:59.4102147Z           "evidence": [
2026-06-15T13:33:59.4102245Z             {
2026-06-15T13:33:59.4102409Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4102527Z               "line": 31
2026-06-15T13:33:59.4102627Z             }
2026-06-15T13:33:59.4102728Z           ]
2026-06-15T13:33:59.4102823Z         },
2026-06-15T13:33:59.4102928Z         "int": {
2026-06-15T13:33:59.4103047Z           "complete": false,
2026-06-15T13:33:59.4103152Z           "evidence": []
2026-06-15T13:33:59.4103257Z         },
2026-06-15T13:33:59.4103358Z         "unit": {
2026-06-15T13:33:59.4103471Z           "complete": true,
2026-06-15T13:33:59.4103586Z           "evidence": [
2026-06-15T13:33:59.4106249Z             {
2026-06-15T13:33:59.4106443Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4106559Z               "line": 181
2026-06-15T13:33:59.4106662Z             }
2026-06-15T13:33:59.4106763Z           ]
2026-06-15T13:33:59.4106864Z         }
2026-06-15T13:33:59.4106967Z       }
2026-06-15T13:33:59.4107071Z     },
2026-06-15T13:33:59.4107167Z     {
2026-06-15T13:33:59.4107312Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T13:33:59.4107499Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T13:33:59.4107622Z       "requiredStages": [
2026-06-15T13:33:59.4107722Z         "impl",
2026-06-15T13:33:59.4107824Z         "unit"
2026-06-15T13:33:59.4107928Z       ],
2026-06-15T13:33:59.4108032Z       "stages": {
2026-06-15T13:33:59.4108134Z         "doc": {
2026-06-15T13:33:59.4108257Z           "complete": false,
2026-06-15T13:33:59.4108371Z           "evidence": []
2026-06-15T13:33:59.4108477Z         },
2026-06-15T13:33:59.4108595Z         "impl": {
2026-06-15T13:33:59.4108715Z           "complete": true,
2026-06-15T13:33:59.4108819Z           "evidence": [
2026-06-15T13:33:59.4108919Z             {
2026-06-15T13:33:59.4109158Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4109272Z               "line": 49
2026-06-15T13:33:59.4109373Z             },
2026-06-15T13:33:59.4109473Z             {
2026-06-15T13:33:59.4109625Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4109741Z               "line": 81
2026-06-15T13:33:59.4109834Z             }
2026-06-15T13:33:59.4109938Z           ]
2026-06-15T13:33:59.4110044Z         },
2026-06-15T13:33:59.4110144Z         "int": {
2026-06-15T13:33:59.4110267Z           "complete": false,
2026-06-15T13:33:59.4110383Z           "evidence": []
2026-06-15T13:33:59.4110478Z         },
2026-06-15T13:33:59.4110577Z         "unit": {
2026-06-15T13:33:59.4110693Z           "complete": true,
2026-06-15T13:33:59.4110812Z           "evidence": [
2026-06-15T13:33:59.4110911Z             {
2026-06-15T13:33:59.4111055Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4111159Z               "line": 156
2026-06-15T13:33:59.4111260Z             },
2026-06-15T13:33:59.4111360Z             {
2026-06-15T13:33:59.4111508Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4111623Z               "line": 173
2026-06-15T13:33:59.4111722Z             },
2026-06-15T13:33:59.4111953Z             {
2026-06-15T13:33:59.4112103Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4112207Z               "line": 196
2026-06-15T13:33:59.4112303Z             }
2026-06-15T13:33:59.4112401Z           ]
2026-06-15T13:33:59.4112505Z         }
2026-06-15T13:33:59.4112601Z       }
2026-06-15T13:33:59.4112707Z     },
2026-06-15T13:33:59.4112810Z     {
2026-06-15T13:33:59.4112964Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T13:33:59.4113168Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T13:33:59.4113397Z       "requiredStages": [
2026-06-15T13:33:59.4113498Z         "impl",
2026-06-15T13:33:59.4113589Z         "unit"
2026-06-15T13:33:59.4113688Z       ],
2026-06-15T13:33:59.4113788Z       "stages": {
2026-06-15T13:33:59.4113894Z         "doc": {
2026-06-15T13:33:59.4114008Z           "complete": false,
2026-06-15T13:33:59.4114112Z           "evidence": []
2026-06-15T13:33:59.4114213Z         },
2026-06-15T13:33:59.4114313Z         "impl": {
2026-06-15T13:33:59.4114432Z           "complete": true,
2026-06-15T13:33:59.4114547Z           "evidence": [
2026-06-15T13:33:59.4114646Z             {
2026-06-15T13:33:59.4114786Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4114891Z               "line": 120
2026-06-15T13:33:59.4114994Z             }
2026-06-15T13:33:59.4115089Z           ]
2026-06-15T13:33:59.4115194Z         },
2026-06-15T13:33:59.4115297Z         "int": {
2026-06-15T13:33:59.4115415Z           "complete": false,
2026-06-15T13:33:59.4115531Z           "evidence": []
2026-06-15T13:33:59.4115630Z         },
2026-06-15T13:33:59.4115730Z         "unit": {
2026-06-15T13:33:59.4115846Z           "complete": true,
2026-06-15T13:33:59.4115954Z           "evidence": [
2026-06-15T13:33:59.4116059Z             {
2026-06-15T13:33:59.4116207Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4116321Z               "line": 212
2026-06-15T13:33:59.4116427Z             },
2026-06-15T13:33:59.4116527Z             {
2026-06-15T13:33:59.4116675Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4116785Z               "line": 221
2026-06-15T13:33:59.4116879Z             },
2026-06-15T13:33:59.4116980Z             {
2026-06-15T13:33:59.4117124Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4117232Z               "line": 229
2026-06-15T13:33:59.4117333Z             },
2026-06-15T13:33:59.4117434Z             {
2026-06-15T13:33:59.4117584Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4117694Z               "line": 239
2026-06-15T13:33:59.4117793Z             },
2026-06-15T13:33:59.4117892Z             {
2026-06-15T13:33:59.4118030Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T13:33:59.4118141Z               "line": 249
2026-06-15T13:33:59.4118239Z             }
2026-06-15T13:33:59.4118340Z           ]
2026-06-15T13:33:59.4118445Z         }
2026-06-15T13:33:59.4118549Z       }
2026-06-15T13:33:59.4118646Z     },
2026-06-15T13:33:59.4118745Z     {
2026-06-15T13:33:59.4118888Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T13:33:59.4119165Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T13:33:59.4119280Z       "requiredStages": [
2026-06-15T13:33:59.4119380Z         "impl",
2026-06-15T13:33:59.4119475Z         "unit"
2026-06-15T13:33:59.4119575Z       ],
2026-06-15T13:33:59.4119672Z       "stages": {
2026-06-15T13:33:59.4119780Z         "doc": {
2026-06-15T13:33:59.4119900Z           "complete": false,
2026-06-15T13:33:59.4120005Z           "evidence": []
2026-06-15T13:33:59.4120104Z         },
2026-06-15T13:33:59.4120205Z         "impl": {
2026-06-15T13:33:59.4120320Z           "complete": true,
2026-06-15T13:33:59.4120423Z           "evidence": [
2026-06-15T13:33:59.4120522Z             {
2026-06-15T13:33:59.4120667Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4120775Z               "line": 14
2026-06-15T13:33:59.4120976Z             },
2026-06-15T13:33:59.4121075Z             {
2026-06-15T13:33:59.4121220Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4121324Z               "line": 63
2026-06-15T13:33:59.4121428Z             }
2026-06-15T13:33:59.4121529Z           ]
2026-06-15T13:33:59.4121634Z         },
2026-06-15T13:33:59.4121733Z         "int": {
2026-06-15T13:33:59.4121844Z           "complete": false,
2026-06-15T13:33:59.4121958Z           "evidence": []
2026-06-15T13:33:59.4122150Z         },
2026-06-15T13:33:59.4122254Z         "unit": {
2026-06-15T13:33:59.4122373Z           "complete": true,
2026-06-15T13:33:59.4122488Z           "evidence": [
2026-06-15T13:33:59.4122583Z             {
2026-06-15T13:33:59.4122720Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4122830Z               "line": 164
2026-06-15T13:33:59.4122928Z             },
2026-06-15T13:33:59.4123032Z             {
2026-06-15T13:33:59.4123157Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4123271Z               "line": 198
2026-06-15T13:33:59.4123366Z             },
2026-06-15T13:33:59.4123467Z             {
2026-06-15T13:33:59.4123604Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4123713Z               "line": 220
2026-06-15T13:33:59.4123810Z             }
2026-06-15T13:33:59.4123910Z           ]
2026-06-15T13:33:59.4124014Z         }
2026-06-15T13:33:59.4124116Z       }
2026-06-15T13:33:59.4124215Z     },
2026-06-15T13:33:59.4124315Z     {
2026-06-15T13:33:59.4124435Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T13:33:59.4125852Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T13:33:59.4125985Z       "requiredStages": [],
2026-06-15T13:33:59.4126091Z       "stages": {
2026-06-15T13:33:59.4126186Z         "doc": {
2026-06-15T13:33:59.4126295Z           "complete": true,
2026-06-15T13:33:59.4126406Z           "evidence": [
2026-06-15T13:33:59.4126510Z             {
2026-06-15T13:33:59.4126649Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4126763Z               "line": 165
2026-06-15T13:33:59.4126863Z             }
2026-06-15T13:33:59.4126978Z           ]
2026-06-15T13:33:59.4127077Z         },
2026-06-15T13:33:59.4127187Z         "impl": {
2026-06-15T13:33:59.4127303Z           "complete": false,
2026-06-15T13:33:59.4127416Z           "evidence": []
2026-06-15T13:33:59.4127516Z         },
2026-06-15T13:33:59.4127608Z         "int": {
2026-06-15T13:33:59.4127731Z           "complete": false,
2026-06-15T13:33:59.4127840Z           "evidence": []
2026-06-15T13:33:59.4127942Z         },
2026-06-15T13:33:59.4128046Z         "unit": {
2026-06-15T13:33:59.4128163Z           "complete": false,
2026-06-15T13:33:59.4128282Z           "evidence": []
2026-06-15T13:33:59.4128381Z         }
2026-06-15T13:33:59.4128485Z       }
2026-06-15T13:33:59.4128586Z     },
2026-06-15T13:33:59.4128687Z     {
2026-06-15T13:33:59.4128828Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T13:33:59.4129153Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T13:33:59.4129277Z       "requiredStages": [
2026-06-15T13:33:59.4129387Z         "impl",
2026-06-15T13:33:59.4129486Z         "unit"
2026-06-15T13:33:59.4129588Z       ],
2026-06-15T13:33:59.4129697Z       "stages": {
2026-06-15T13:33:59.4129801Z         "doc": {
2026-06-15T13:33:59.4129917Z           "complete": false,
2026-06-15T13:33:59.4130031Z           "evidence": []
2026-06-15T13:33:59.4130130Z         },
2026-06-15T13:33:59.4130236Z         "impl": {
2026-06-15T13:33:59.4130340Z           "complete": true,
2026-06-15T13:33:59.4130561Z           "evidence": [
2026-06-15T13:33:59.4130664Z             {
2026-06-15T13:33:59.4130809Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4130922Z               "line": 76
2026-06-15T13:33:59.4131011Z             },
2026-06-15T13:33:59.4131116Z             {
2026-06-15T13:33:59.4131260Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4131378Z               "line": 167
2026-06-15T13:33:59.4131479Z             },
2026-06-15T13:33:59.4131679Z             {
2026-06-15T13:33:59.4131818Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4131923Z               "line": 233
2026-06-15T13:33:59.4132022Z             },
2026-06-15T13:33:59.4132123Z             {
2026-06-15T13:33:59.4132270Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4132385Z               "line": 272
2026-06-15T13:33:59.4132481Z             }
2026-06-15T13:33:59.4132585Z           ]
2026-06-15T13:33:59.4132685Z         },
2026-06-15T13:33:59.4132791Z         "int": {
2026-06-15T13:33:59.4132909Z           "complete": false,
2026-06-15T13:33:59.4133014Z           "evidence": []
2026-06-15T13:33:59.4133120Z         },
2026-06-15T13:33:59.4133223Z         "unit": {
2026-06-15T13:33:59.4133347Z           "complete": true,
2026-06-15T13:33:59.4133465Z           "evidence": [
2026-06-15T13:33:59.4133564Z             {
2026-06-15T13:33:59.4133697Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4133817Z               "line": 321
2026-06-15T13:33:59.4133931Z             },
2026-06-15T13:33:59.4134027Z             {
2026-06-15T13:33:59.4134165Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4134269Z               "line": 329
2026-06-15T13:33:59.4134371Z             },
2026-06-15T13:33:59.4134475Z             {
2026-06-15T13:33:59.4134618Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4134727Z               "line": 356
2026-06-15T13:33:59.4134827Z             },
2026-06-15T13:33:59.4134932Z             {
2026-06-15T13:33:59.4135070Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4135185Z               "line": 395
2026-06-15T13:33:59.4135286Z             },
2026-06-15T13:33:59.4135390Z             {
2026-06-15T13:33:59.4135533Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4135649Z               "line": 406
2026-06-15T13:33:59.4135752Z             },
2026-06-15T13:33:59.4135857Z             {
2026-06-15T13:33:59.4136001Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4136100Z               "line": 418
2026-06-15T13:33:59.4136199Z             },
2026-06-15T13:33:59.4136295Z             {
2026-06-15T13:33:59.4136431Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T13:33:59.4136550Z               "line": 442
2026-06-15T13:33:59.4136651Z             }
2026-06-15T13:33:59.4136751Z           ]
2026-06-15T13:33:59.4136850Z         }
2026-06-15T13:33:59.4136956Z       }
2026-06-15T13:33:59.4137056Z     },
2026-06-15T13:33:59.4137155Z     {
2026-06-15T13:33:59.4137276Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T13:33:59.4137460Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T13:33:59.4137581Z       "requiredStages": [
2026-06-15T13:33:59.4137680Z         "impl",
2026-06-15T13:33:59.4137785Z         "int"
2026-06-15T13:33:59.4137886Z       ],
2026-06-15T13:33:59.4137986Z       "stages": {
2026-06-15T13:33:59.4138090Z         "doc": {
2026-06-15T13:33:59.4138215Z           "complete": false,
2026-06-15T13:33:59.4138328Z           "evidence": []
2026-06-15T13:33:59.4138429Z         },
2026-06-15T13:33:59.4138535Z         "impl": {
2026-06-15T13:33:59.4138648Z           "complete": true,
2026-06-15T13:33:59.4138752Z           "evidence": [
2026-06-15T13:33:59.4138852Z             {
2026-06-15T13:33:59.4139074Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4139184Z               "line": 22
2026-06-15T13:33:59.4139393Z             }
2026-06-15T13:33:59.4139494Z           ]
2026-06-15T13:33:59.4139599Z         },
2026-06-15T13:33:59.4139698Z         "int": {
2026-06-15T13:33:59.4139809Z           "complete": true,
2026-06-15T13:33:59.4139914Z           "evidence": [
2026-06-15T13:33:59.4140017Z             {
2026-06-15T13:33:59.4140162Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T13:33:59.4140271Z               "line": 18
2026-06-15T13:33:59.4140366Z             }
2026-06-15T13:33:59.4140567Z           ]
2026-06-15T13:33:59.4140671Z         },
2026-06-15T13:33:59.4140768Z         "unit": {
2026-06-15T13:33:59.4140890Z           "complete": false,
2026-06-15T13:33:59.4141001Z           "evidence": []
2026-06-15T13:33:59.4141092Z         }
2026-06-15T13:33:59.4141196Z       }
2026-06-15T13:33:59.4141296Z     },
2026-06-15T13:33:59.4141392Z     {
2026-06-15T13:33:59.4141534Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T13:33:59.4141763Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T13:33:59.4141886Z       "requiredStages": [
2026-06-15T13:33:59.4141986Z         "impl",
2026-06-15T13:33:59.4142087Z         "unit"
2026-06-15T13:33:59.4142187Z       ],
2026-06-15T13:33:59.4142286Z       "stages": {
2026-06-15T13:33:59.4142388Z         "doc": {
2026-06-15T13:33:59.4142502Z           "complete": false,
2026-06-15T13:33:59.4142606Z           "evidence": []
2026-06-15T13:33:59.4142707Z         },
2026-06-15T13:33:59.4142812Z         "impl": {
2026-06-15T13:33:59.4142930Z           "complete": true,
2026-06-15T13:33:59.4143041Z           "evidence": [
2026-06-15T13:33:59.4143146Z             {
2026-06-15T13:33:59.4143303Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4143412Z               "line": 415
2026-06-15T13:33:59.4143512Z             },
2026-06-15T13:33:59.4143613Z             {
2026-06-15T13:33:59.4143755Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4143878Z               "line": 27
2026-06-15T13:33:59.4143979Z             }
2026-06-15T13:33:59.4144077Z           ]
2026-06-15T13:33:59.4144176Z         },
2026-06-15T13:33:59.4144267Z         "int": {
2026-06-15T13:33:59.4144387Z           "complete": false,
2026-06-15T13:33:59.4144491Z           "evidence": []
2026-06-15T13:33:59.4144596Z         },
2026-06-15T13:33:59.4144697Z         "unit": {
2026-06-15T13:33:59.4144820Z           "complete": true,
2026-06-15T13:33:59.4144921Z           "evidence": [
2026-06-15T13:33:59.4145035Z             {
2026-06-15T13:33:59.4145183Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4145292Z               "line": 940
2026-06-15T13:33:59.4145397Z             },
2026-06-15T13:33:59.4145497Z             {
2026-06-15T13:33:59.4145640Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4145740Z               "line": 181
2026-06-15T13:33:59.4145851Z             }
2026-06-15T13:33:59.4145950Z           ]
2026-06-15T13:33:59.4146060Z         }
2026-06-15T13:33:59.4146161Z       }
2026-06-15T13:33:59.4146260Z     },
2026-06-15T13:33:59.4146370Z     {
2026-06-15T13:33:59.4146514Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T13:33:59.4146712Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T13:33:59.4146827Z       "requiredStages": [
2026-06-15T13:33:59.4146934Z         "impl",
2026-06-15T13:33:59.4147034Z         "unit"
2026-06-15T13:33:59.4147134Z       ],
2026-06-15T13:33:59.4147240Z       "stages": {
2026-06-15T13:33:59.4147349Z         "doc": {
2026-06-15T13:33:59.4147469Z           "complete": false,
2026-06-15T13:33:59.4147588Z           "evidence": []
2026-06-15T13:33:59.4147692Z         },
2026-06-15T13:33:59.4147803Z         "impl": {
2026-06-15T13:33:59.4147917Z           "complete": true,
2026-06-15T13:33:59.4148025Z           "evidence": [
2026-06-15T13:33:59.4148118Z             {
2026-06-15T13:33:59.4148269Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.4148489Z               "line": 73
2026-06-15T13:33:59.4148588Z             },
2026-06-15T13:33:59.4148684Z             {
2026-06-15T13:33:59.4148832Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.4149023Z               "line": 941
2026-06-15T13:33:59.4149118Z             },
2026-06-15T13:33:59.4149222Z             {
2026-06-15T13:33:59.4149369Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4149473Z               "line": 20
2026-06-15T13:33:59.4149672Z             },
2026-06-15T13:33:59.4149778Z             {
2026-06-15T13:33:59.4149924Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4150045Z               "line": 100
2026-06-15T13:33:59.4150135Z             },
2026-06-15T13:33:59.4150239Z             {
2026-06-15T13:33:59.4150383Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T13:33:59.4150498Z               "line": 555
2026-06-15T13:33:59.4150597Z             },
2026-06-15T13:33:59.4150693Z             {
2026-06-15T13:33:59.4150836Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:33:59.4150936Z               "line": 68
2026-06-15T13:33:59.4151032Z             },
2026-06-15T13:33:59.4151127Z             {
2026-06-15T13:33:59.4151275Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:33:59.4151375Z               "line": 80
2026-06-15T13:33:59.4151480Z             }
2026-06-15T13:33:59.4151585Z           ]
2026-06-15T13:33:59.4151685Z         },
2026-06-15T13:33:59.4151799Z         "int": {
2026-06-15T13:33:59.4151905Z           "complete": true,
2026-06-15T13:33:59.4152024Z           "evidence": [
2026-06-15T13:33:59.4152141Z             {
2026-06-15T13:33:59.4152294Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T13:33:59.4152399Z               "line": 44
2026-06-15T13:33:59.4152503Z             }
2026-06-15T13:33:59.4152609Z           ]
2026-06-15T13:33:59.4152710Z         },
2026-06-15T13:33:59.4152818Z         "unit": {
2026-06-15T13:33:59.4152934Z           "complete": true,
2026-06-15T13:33:59.4153048Z           "evidence": [
2026-06-15T13:33:59.4153152Z             {
2026-06-15T13:33:59.4153296Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.4153414Z               "line": 1141
2026-06-15T13:33:59.4153515Z             },
2026-06-15T13:33:59.4153616Z             {
2026-06-15T13:33:59.4153762Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.4153878Z               "line": 1157
2026-06-15T13:33:59.4153991Z             },
2026-06-15T13:33:59.4154096Z             {
2026-06-15T13:33:59.4154250Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4154353Z               "line": 1488
2026-06-15T13:33:59.4154457Z             },
2026-06-15T13:33:59.4154563Z             {
2026-06-15T13:33:59.4154708Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4154827Z               "line": 152
2026-06-15T13:33:59.4154924Z             },
2026-06-15T13:33:59.4155027Z             {
2026-06-15T13:33:59.4155166Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4155285Z               "line": 175
2026-06-15T13:33:59.4155380Z             },
2026-06-15T13:33:59.4155486Z             {
2026-06-15T13:33:59.4155633Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4155738Z               "line": 186
2026-06-15T13:33:59.4155839Z             },
2026-06-15T13:33:59.4155938Z             {
2026-06-15T13:33:59.4156101Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4156214Z               "line": 202
2026-06-15T13:33:59.4156324Z             },
2026-06-15T13:33:59.4156430Z             {
2026-06-15T13:33:59.4156567Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T13:33:59.4156673Z               "line": 216
2026-06-15T13:33:59.4156774Z             },
2026-06-15T13:33:59.4156882Z             {
2026-06-15T13:33:59.4157022Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T13:33:59.4157244Z               "line": 137
2026-06-15T13:33:59.4157349Z             },
2026-06-15T13:33:59.4157448Z             {
2026-06-15T13:33:59.4157594Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4157704Z               "line": 6670
2026-06-15T13:33:59.4157810Z             },
2026-06-15T13:33:59.4157909Z             {
2026-06-15T13:33:59.4158053Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T13:33:59.4158166Z               "line": 30
2026-06-15T13:33:59.4158349Z             },
2026-06-15T13:33:59.4158453Z             {
2026-06-15T13:33:59.4158595Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T13:33:59.4158711Z               "line": 73
2026-06-15T13:33:59.4158815Z             }
2026-06-15T13:33:59.4158915Z           ]
2026-06-15T13:33:59.4159106Z         }
2026-06-15T13:33:59.4159206Z       }
2026-06-15T13:33:59.4159307Z     },
2026-06-15T13:33:59.4159406Z     {
2026-06-15T13:33:59.4159535Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T13:33:59.4159834Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T13:33:59.4159958Z       "requiredStages": [
2026-06-15T13:33:59.4160071Z         "impl",
2026-06-15T13:33:59.4160165Z         "unit"
2026-06-15T13:33:59.4160271Z       ],
2026-06-15T13:33:59.4160372Z       "stages": {
2026-06-15T13:33:59.4160471Z         "doc": {
2026-06-15T13:33:59.4160581Z           "complete": true,
2026-06-15T13:33:59.4160681Z           "evidence": [
2026-06-15T13:33:59.4160795Z             {
2026-06-15T13:33:59.4160925Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4161043Z               "line": 133
2026-06-15T13:33:59.4161147Z             }
2026-06-15T13:33:59.4161253Z           ]
2026-06-15T13:33:59.4161353Z         },
2026-06-15T13:33:59.4161457Z         "impl": {
2026-06-15T13:33:59.4161583Z           "complete": true,
2026-06-15T13:33:59.4161687Z           "evidence": [
2026-06-15T13:33:59.4161796Z             {
2026-06-15T13:33:59.4161930Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4162035Z               "line": 65
2026-06-15T13:33:59.4162140Z             },
2026-06-15T13:33:59.4162245Z             {
2026-06-15T13:33:59.4162393Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4162494Z               "line": 17
2026-06-15T13:33:59.4162598Z             },
2026-06-15T13:33:59.4162701Z             {
2026-06-15T13:33:59.4162854Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.4162983Z               "line": 146
2026-06-15T13:33:59.4163088Z             },
2026-06-15T13:33:59.4163189Z             {
2026-06-15T13:33:59.4163331Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4163451Z               "line": 249
2026-06-15T13:33:59.4163551Z             },
2026-06-15T13:33:59.4163655Z             {
2026-06-15T13:33:59.4163803Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4163922Z               "line": 362
2026-06-15T13:33:59.4164012Z             },
2026-06-15T13:33:59.4164118Z             {
2026-06-15T13:33:59.4164261Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.4164366Z               "line": 32
2026-06-15T13:33:59.4164471Z             },
2026-06-15T13:33:59.4164584Z             {
2026-06-15T13:33:59.4164709Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4164824Z               "line": 1171
2026-06-15T13:33:59.4164927Z             },
2026-06-15T13:33:59.4165037Z             {
2026-06-15T13:33:59.4165165Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4165278Z               "line": 5291
2026-06-15T13:33:59.4165383Z             },
2026-06-15T13:33:59.4165484Z             {
2026-06-15T13:33:59.4165621Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4165726Z               "line": 5573
2026-06-15T13:33:59.4165827Z             }
2026-06-15T13:33:59.4165930Z           ]
2026-06-15T13:33:59.4166165Z         },
2026-06-15T13:33:59.4166279Z         "int": {
2026-06-15T13:33:59.4166394Z           "complete": false,
2026-06-15T13:33:59.4166513Z           "evidence": []
2026-06-15T13:33:59.4166612Z         },
2026-06-15T13:33:59.4166723Z         "unit": {
2026-06-15T13:33:59.4166832Z           "complete": true,
2026-06-15T13:33:59.4166952Z           "evidence": [
2026-06-15T13:33:59.4167043Z             {
2026-06-15T13:33:59.4167184Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4167296Z               "line": 94
2026-06-15T13:33:59.4167495Z             },
2026-06-15T13:33:59.4167601Z             {
2026-06-15T13:33:59.4167743Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4167861Z               "line": 111
2026-06-15T13:33:59.4167966Z             },
2026-06-15T13:33:59.4168069Z             {
2026-06-15T13:33:59.4168201Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4168308Z               "line": 124
2026-06-15T13:33:59.4168407Z             },
2026-06-15T13:33:59.4168516Z             {
2026-06-15T13:33:59.4168660Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4168769Z               "line": 134
2026-06-15T13:33:59.4168870Z             },
2026-06-15T13:33:59.4169046Z             {
2026-06-15T13:33:59.4169180Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4169299Z               "line": 144
2026-06-15T13:33:59.4169394Z             },
2026-06-15T13:33:59.4169494Z             {
2026-06-15T13:33:59.4169646Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T13:33:59.4169756Z               "line": 156
2026-06-15T13:33:59.4169862Z             },
2026-06-15T13:33:59.4169966Z             {
2026-06-15T13:33:59.4170139Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4170244Z               "line": 746
2026-06-15T13:33:59.4170347Z             },
2026-06-15T13:33:59.4170451Z             {
2026-06-15T13:33:59.4170603Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.4170730Z               "line": 309
2026-06-15T13:33:59.4170836Z             }
2026-06-15T13:33:59.4170932Z           ]
2026-06-15T13:33:59.4171031Z         }
2026-06-15T13:33:59.4171126Z       }
2026-06-15T13:33:59.4171232Z     },
2026-06-15T13:33:59.4171331Z     {
2026-06-15T13:33:59.4171466Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T13:33:59.4171622Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T13:33:59.4171747Z       "requiredStages": [
2026-06-15T13:33:59.4171861Z         "impl",
2026-06-15T13:33:59.4171965Z         "unit"
2026-06-15T13:33:59.4172066Z       ],
2026-06-15T13:33:59.4172166Z       "stages": {
2026-06-15T13:33:59.4172276Z         "doc": {
2026-06-15T13:33:59.4172395Z           "complete": false,
2026-06-15T13:33:59.4172518Z           "evidence": []
2026-06-15T13:33:59.4172614Z         },
2026-06-15T13:33:59.4172715Z         "impl": {
2026-06-15T13:33:59.4172838Z           "complete": true,
2026-06-15T13:33:59.4172953Z           "evidence": [
2026-06-15T13:33:59.4173054Z             {
2026-06-15T13:33:59.4173200Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4173323Z               "line": 128
2026-06-15T13:33:59.4173424Z             }
2026-06-15T13:33:59.4173524Z           ]
2026-06-15T13:33:59.4173628Z         },
2026-06-15T13:33:59.4173729Z         "int": {
2026-06-15T13:33:59.4173858Z           "complete": false,
2026-06-15T13:33:59.4173972Z           "evidence": []
2026-06-15T13:33:59.4174078Z         },
2026-06-15T13:33:59.4174182Z         "unit": {
2026-06-15T13:33:59.4174301Z           "complete": true,
2026-06-15T13:33:59.4174421Z           "evidence": [
2026-06-15T13:33:59.4174520Z             {
2026-06-15T13:33:59.4174665Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4174773Z               "line": 205
2026-06-15T13:33:59.4174873Z             }
2026-06-15T13:33:59.4174975Z           ]
2026-06-15T13:33:59.4175069Z         }
2026-06-15T13:33:59.4175178Z       }
2026-06-15T13:33:59.4175379Z     },
2026-06-15T13:33:59.4175482Z     {
2026-06-15T13:33:59.4175621Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T13:33:59.4175809Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T13:33:59.4175929Z       "requiredStages": [
2026-06-15T13:33:59.4176054Z         "impl",
2026-06-15T13:33:59.4176161Z         "unit"
2026-06-15T13:33:59.4176263Z       ],
2026-06-15T13:33:59.4176372Z       "stages": {
2026-06-15T13:33:59.4176471Z         "doc": {
2026-06-15T13:33:59.4176701Z           "complete": false,
2026-06-15T13:33:59.4176815Z           "evidence": []
2026-06-15T13:33:59.4176926Z         },
2026-06-15T13:33:59.4177035Z         "impl": {
2026-06-15T13:33:59.4177154Z           "complete": true,
2026-06-15T13:33:59.4177269Z           "evidence": [
2026-06-15T13:33:59.4177359Z             {
2026-06-15T13:33:59.4177492Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4177603Z               "line": 272
2026-06-15T13:33:59.4177712Z             },
2026-06-15T13:33:59.4177817Z             {
2026-06-15T13:33:59.4177955Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4178074Z               "line": 283
2026-06-15T13:33:59.4178180Z             },
2026-06-15T13:33:59.4178280Z             {
2026-06-15T13:33:59.4178407Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4178521Z               "line": 301
2026-06-15T13:33:59.4178620Z             }
2026-06-15T13:33:59.4178724Z           ]
2026-06-15T13:33:59.4178838Z         },
2026-06-15T13:33:59.4179029Z         "int": {
2026-06-15T13:33:59.4179149Z           "complete": false,
2026-06-15T13:33:59.4179259Z           "evidence": []
2026-06-15T13:33:59.4179358Z         },
2026-06-15T13:33:59.4179464Z         "unit": {
2026-06-15T13:33:59.4179573Z           "complete": true,
2026-06-15T13:33:59.4179691Z           "evidence": [
2026-06-15T13:33:59.4179783Z             {
2026-06-15T13:33:59.4179931Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4180049Z               "line": 325
2026-06-15T13:33:59.4180160Z             },
2026-06-15T13:33:59.4180264Z             {
2026-06-15T13:33:59.4180404Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4180508Z               "line": 346
2026-06-15T13:33:59.4180607Z             },
2026-06-15T13:33:59.4180718Z             {
2026-06-15T13:33:59.4180855Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4180969Z               "line": 574
2026-06-15T13:33:59.4181083Z             },
2026-06-15T13:33:59.4181172Z             {
2026-06-15T13:33:59.4181304Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4181410Z               "line": 585
2026-06-15T13:33:59.4181515Z             },
2026-06-15T13:33:59.4181624Z             {
2026-06-15T13:33:59.4181763Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4181877Z               "line": 598
2026-06-15T13:33:59.4181977Z             }
2026-06-15T13:33:59.4182092Z           ]
2026-06-15T13:33:59.4182196Z         }
2026-06-15T13:33:59.4182292Z       }
2026-06-15T13:33:59.4182397Z     },
2026-06-15T13:33:59.4182502Z     {
2026-06-15T13:33:59.4182636Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T13:33:59.4183347Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T13:33:59.4183479Z       "requiredStages": [
2026-06-15T13:33:59.4183586Z         "impl",
2026-06-15T13:33:59.4183680Z         "unit"
2026-06-15T13:33:59.4187404Z       ],
2026-06-15T13:33:59.4187552Z       "stages": {
2026-06-15T13:33:59.4187666Z         "doc": {
2026-06-15T13:33:59.4187787Z           "complete": false,
2026-06-15T13:33:59.4187895Z           "evidence": []
2026-06-15T13:33:59.4188000Z         },
2026-06-15T13:33:59.4188111Z         "impl": {
2026-06-15T13:33:59.4188238Z           "complete": true,
2026-06-15T13:33:59.4188529Z           "evidence": [
2026-06-15T13:33:59.4188639Z             {
2026-06-15T13:33:59.4188807Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4188919Z               "line": 759
2026-06-15T13:33:59.4189105Z             }
2026-06-15T13:33:59.4189213Z           ]
2026-06-15T13:33:59.4189322Z         },
2026-06-15T13:33:59.4189418Z         "int": {
2026-06-15T13:33:59.4189532Z           "complete": false,
2026-06-15T13:33:59.4189637Z           "evidence": []
2026-06-15T13:33:59.4189847Z         },
2026-06-15T13:33:59.4189956Z         "unit": {
2026-06-15T13:33:59.4190072Z           "complete": true,
2026-06-15T13:33:59.4190186Z           "evidence": [
2026-06-15T13:33:59.4190290Z             {
2026-06-15T13:33:59.4190452Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4190562Z               "line": 873
2026-06-15T13:33:59.4190668Z             }
2026-06-15T13:33:59.4190772Z           ]
2026-06-15T13:33:59.4190881Z         }
2026-06-15T13:33:59.4190987Z       }
2026-06-15T13:33:59.4191091Z     },
2026-06-15T13:33:59.4191191Z     {
2026-06-15T13:33:59.4191321Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T13:33:59.4191581Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T13:33:59.4191700Z       "requiredStages": [
2026-06-15T13:33:59.4191803Z         "impl",
2026-06-15T13:33:59.4191908Z         "unit"
2026-06-15T13:33:59.4192013Z       ],
2026-06-15T13:33:59.4192136Z       "stages": {
2026-06-15T13:33:59.4192247Z         "doc": {
2026-06-15T13:33:59.4192381Z           "complete": false,
2026-06-15T13:33:59.4192485Z           "evidence": []
2026-06-15T13:33:59.4192591Z         },
2026-06-15T13:33:59.4192695Z         "impl": {
2026-06-15T13:33:59.4192814Z           "complete": true,
2026-06-15T13:33:59.4192929Z           "evidence": [
2026-06-15T13:33:59.4193028Z             {
2026-06-15T13:33:59.4193176Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4193282Z               "line": 14
2026-06-15T13:33:59.4193382Z             },
2026-06-15T13:33:59.4193491Z             {
2026-06-15T13:33:59.4193625Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.4193743Z               "line": 449
2026-06-15T13:33:59.4193840Z             }
2026-06-15T13:33:59.4193949Z           ]
2026-06-15T13:33:59.4194054Z         },
2026-06-15T13:33:59.4194165Z         "int": {
2026-06-15T13:33:59.4194287Z           "complete": false,
2026-06-15T13:33:59.4194401Z           "evidence": []
2026-06-15T13:33:59.4194506Z         },
2026-06-15T13:33:59.4194616Z         "unit": {
2026-06-15T13:33:59.4194739Z           "complete": true,
2026-06-15T13:33:59.4194845Z           "evidence": [
2026-06-15T13:33:59.4194954Z             {
2026-06-15T13:33:59.4195102Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4195207Z               "line": 130
2026-06-15T13:33:59.4195316Z             },
2026-06-15T13:33:59.4195422Z             {
2026-06-15T13:33:59.4195560Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4195674Z               "line": 138
2026-06-15T13:33:59.4195775Z             },
2026-06-15T13:33:59.4195888Z             {
2026-06-15T13:33:59.4196022Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4196142Z               "line": 146
2026-06-15T13:33:59.4196246Z             },
2026-06-15T13:33:59.4196356Z             {
2026-06-15T13:33:59.4196494Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4196608Z               "line": 154
2026-06-15T13:33:59.4196717Z             },
2026-06-15T13:33:59.4196821Z             {
2026-06-15T13:33:59.4196958Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4197068Z               "line": 162
2026-06-15T13:33:59.4197169Z             },
2026-06-15T13:33:59.4197277Z             {
2026-06-15T13:33:59.4197411Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T13:33:59.4197530Z               "line": 170
2026-06-15T13:33:59.4197731Z             }
2026-06-15T13:33:59.4197840Z           ]
2026-06-15T13:33:59.4197944Z         }
2026-06-15T13:33:59.4198055Z       }
2026-06-15T13:33:59.4198155Z     },
2026-06-15T13:33:59.4198250Z     {
2026-06-15T13:33:59.4198403Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T13:33:59.4199584Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T13:33:59.4199858Z       "requiredStages": [
2026-06-15T13:33:59.4199963Z         "impl",
2026-06-15T13:33:59.4200064Z         "unit"
2026-06-15T13:33:59.4200163Z       ],
2026-06-15T13:33:59.4200269Z       "stages": {
2026-06-15T13:33:59.4200374Z         "doc": {
2026-06-15T13:33:59.4200497Z           "complete": false,
2026-06-15T13:33:59.4200617Z           "evidence": []
2026-06-15T13:33:59.4200736Z         },
2026-06-15T13:33:59.4200846Z         "impl": {
2026-06-15T13:33:59.4200970Z           "complete": true,
2026-06-15T13:33:59.4201079Z           "evidence": [
2026-06-15T13:33:59.4201179Z             {
2026-06-15T13:33:59.4201355Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4201475Z               "line": 34
2026-06-15T13:33:59.4201576Z             }
2026-06-15T13:33:59.4201680Z           ]
2026-06-15T13:33:59.4201790Z         },
2026-06-15T13:33:59.4201901Z         "int": {
2026-06-15T13:33:59.4202018Z           "complete": false,
2026-06-15T13:33:59.4202131Z           "evidence": []
2026-06-15T13:33:59.4202232Z         },
2026-06-15T13:33:59.4202340Z         "unit": {
2026-06-15T13:33:59.4202453Z           "complete": true,
2026-06-15T13:33:59.4202573Z           "evidence": [
2026-06-15T13:33:59.4202673Z             {
2026-06-15T13:33:59.4202855Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4202965Z               "line": 188
2026-06-15T13:33:59.4203069Z             },
2026-06-15T13:33:59.4203170Z             {
2026-06-15T13:33:59.4203345Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4203465Z               "line": 200
2026-06-15T13:33:59.4203569Z             },
2026-06-15T13:33:59.4203674Z             {
2026-06-15T13:33:59.4203842Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4203947Z               "line": 211
2026-06-15T13:33:59.4204056Z             },
2026-06-15T13:33:59.4204153Z             {
2026-06-15T13:33:59.4204313Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4204419Z               "line": 253
2026-06-15T13:33:59.4204528Z             },
2026-06-15T13:33:59.4204628Z             {
2026-06-15T13:33:59.4204801Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4204918Z               "line": 277
2026-06-15T13:33:59.4205033Z             },
2026-06-15T13:33:59.4205138Z             {
2026-06-15T13:33:59.4205304Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4205415Z               "line": 300
2026-06-15T13:33:59.4205510Z             },
2026-06-15T13:33:59.4205604Z             {
2026-06-15T13:33:59.4205772Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T13:33:59.4205876Z               "line": 316
2026-06-15T13:33:59.4205977Z             }
2026-06-15T13:33:59.4206082Z           ]
2026-06-15T13:33:59.4206186Z         }
2026-06-15T13:33:59.4206291Z       }
2026-06-15T13:33:59.4206397Z     },
2026-06-15T13:33:59.4206497Z     {
2026-06-15T13:33:59.4206645Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T13:33:59.4207234Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T13:33:59.4207466Z       "requiredStages": [
2026-06-15T13:33:59.4207580Z         "impl",
2026-06-15T13:33:59.4207686Z         "unit"
2026-06-15T13:33:59.4207785Z       ],
2026-06-15T13:33:59.4207895Z       "stages": {
2026-06-15T13:33:59.4208000Z         "doc": {
2026-06-15T13:33:59.4208119Z           "complete": false,
2026-06-15T13:33:59.4208229Z           "evidence": []
2026-06-15T13:33:59.4208334Z         },
2026-06-15T13:33:59.4208433Z         "impl": {
2026-06-15T13:33:59.4208548Z           "complete": true,
2026-06-15T13:33:59.4208739Z           "evidence": [
2026-06-15T13:33:59.4208839Z             {
2026-06-15T13:33:59.4209116Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4209222Z               "line": 29
2026-06-15T13:33:59.4209325Z             },
2026-06-15T13:33:59.4209430Z             {
2026-06-15T13:33:59.4209579Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4209697Z               "line": 174
2026-06-15T13:33:59.4209803Z             },
2026-06-15T13:33:59.4209908Z             {
2026-06-15T13:33:59.4210049Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4210163Z               "line": 194
2026-06-15T13:33:59.4210263Z             },
2026-06-15T13:33:59.4210366Z             {
2026-06-15T13:33:59.4210519Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4210629Z               "line": 222
2026-06-15T13:33:59.4210742Z             }
2026-06-15T13:33:59.4210844Z           ]
2026-06-15T13:33:59.4210949Z         },
2026-06-15T13:33:59.4211062Z         "int": {
2026-06-15T13:33:59.4211177Z           "complete": false,
2026-06-15T13:33:59.4211292Z           "evidence": []
2026-06-15T13:33:59.4211396Z         },
2026-06-15T13:33:59.4211506Z         "unit": {
2026-06-15T13:33:59.4211621Z           "complete": true,
2026-06-15T13:33:59.4211735Z           "evidence": [
2026-06-15T13:33:59.4211845Z             {
2026-06-15T13:33:59.4211988Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4212113Z               "line": 329
2026-06-15T13:33:59.4212216Z             },
2026-06-15T13:33:59.4212321Z             {
2026-06-15T13:33:59.4212461Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4212564Z               "line": 344
2026-06-15T13:33:59.4212678Z             },
2026-06-15T13:33:59.4212778Z             {
2026-06-15T13:33:59.4212923Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4213028Z               "line": 417
2026-06-15T13:33:59.4213148Z             },
2026-06-15T13:33:59.4213243Z             {
2026-06-15T13:33:59.4213382Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4213501Z               "line": 433
2026-06-15T13:33:59.4213605Z             },
2026-06-15T13:33:59.4213711Z             {
2026-06-15T13:33:59.4213854Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4213963Z               "line": 492
2026-06-15T13:33:59.4214059Z             },
2026-06-15T13:33:59.4214173Z             {
2026-06-15T13:33:59.4214321Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4214426Z               "line": 506
2026-06-15T13:33:59.4214535Z             },
2026-06-15T13:33:59.4214636Z             {
2026-06-15T13:33:59.4214778Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4214883Z               "line": 517
2026-06-15T13:33:59.4214994Z             },
2026-06-15T13:33:59.4215098Z             {
2026-06-15T13:33:59.4215227Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4215352Z               "line": 528
2026-06-15T13:33:59.4215454Z             }
2026-06-15T13:33:59.4215563Z           ]
2026-06-15T13:33:59.4215665Z         }
2026-06-15T13:33:59.4215769Z       }
2026-06-15T13:33:59.4215874Z     },
2026-06-15T13:33:59.4215975Z     {
2026-06-15T13:33:59.4216136Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T13:33:59.4216866Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T13:33:59.4217123Z       "requiredStages": [
2026-06-15T13:33:59.4217234Z         "impl",
2026-06-15T13:33:59.4217342Z         "unit"
2026-06-15T13:33:59.4217438Z       ],
2026-06-15T13:33:59.4217544Z       "stages": {
2026-06-15T13:33:59.4217648Z         "doc": {
2026-06-15T13:33:59.4217766Z           "complete": false,
2026-06-15T13:33:59.4217890Z           "evidence": []
2026-06-15T13:33:59.4218120Z         },
2026-06-15T13:33:59.4218231Z         "impl": {
2026-06-15T13:33:59.4218350Z           "complete": true,
2026-06-15T13:33:59.4218455Z           "evidence": [
2026-06-15T13:33:59.4218560Z             {
2026-06-15T13:33:59.4218727Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4218847Z               "line": 27
2026-06-15T13:33:59.4219012Z             },
2026-06-15T13:33:59.4219104Z             {
2026-06-15T13:33:59.4219285Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4219389Z               "line": 110
2026-06-15T13:33:59.4219500Z             },
2026-06-15T13:33:59.4219600Z             {
2026-06-15T13:33:59.4219767Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4219880Z               "line": 153
2026-06-15T13:33:59.4219985Z             },
2026-06-15T13:33:59.4220092Z             {
2026-06-15T13:33:59.4220238Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4220353Z               "line": 182
2026-06-15T13:33:59.4220459Z             },
2026-06-15T13:33:59.4220567Z             {
2026-06-15T13:33:59.4220738Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4220851Z               "line": 31
2026-06-15T13:33:59.4220959Z             },
2026-06-15T13:33:59.4221055Z             {
2026-06-15T13:33:59.4221222Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4221341Z               "line": 113
2026-06-15T13:33:59.4221447Z             },
2026-06-15T13:33:59.4221551Z             {
2026-06-15T13:33:59.4221724Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4221842Z               "line": 138
2026-06-15T13:33:59.4221941Z             }
2026-06-15T13:33:59.4222048Z           ]
2026-06-15T13:33:59.4222147Z         },
2026-06-15T13:33:59.4222252Z         "int": {
2026-06-15T13:33:59.4222381Z           "complete": false,
2026-06-15T13:33:59.4222495Z           "evidence": []
2026-06-15T13:33:59.4222600Z         },
2026-06-15T13:33:59.4222701Z         "unit": {
2026-06-15T13:33:59.4222828Z           "complete": true,
2026-06-15T13:33:59.4222935Z           "evidence": [
2026-06-15T13:33:59.4223039Z             {
2026-06-15T13:33:59.4223218Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4223324Z               "line": 261
2026-06-15T13:33:59.4223427Z             },
2026-06-15T13:33:59.4223540Z             {
2026-06-15T13:33:59.4223708Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4223826Z               "line": 276
2026-06-15T13:33:59.4223922Z             },
2026-06-15T13:33:59.4224028Z             {
2026-06-15T13:33:59.4224184Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4224300Z               "line": 293
2026-06-15T13:33:59.4224399Z             },
2026-06-15T13:33:59.4224508Z             {
2026-06-15T13:33:59.4224676Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4224780Z               "line": 310
2026-06-15T13:33:59.4224886Z             },
2026-06-15T13:33:59.4224981Z             {
2026-06-15T13:33:59.4225138Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4225244Z               "line": 327
2026-06-15T13:33:59.4225362Z             },
2026-06-15T13:33:59.4225472Z             {
2026-06-15T13:33:59.4225625Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.4225860Z               "line": 366
2026-06-15T13:33:59.4225963Z             },
2026-06-15T13:33:59.4226067Z             {
2026-06-15T13:33:59.4226253Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4226376Z               "line": 179
2026-06-15T13:33:59.4226487Z             },
2026-06-15T13:33:59.4226587Z             {
2026-06-15T13:33:59.4226763Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4226974Z               "line": 194
2026-06-15T13:33:59.4227073Z             },
2026-06-15T13:33:59.4227179Z             {
2026-06-15T13:33:59.4227344Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4227465Z               "line": 204
2026-06-15T13:33:59.4227569Z             },
2026-06-15T13:33:59.4227678Z             {
2026-06-15T13:33:59.4227846Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4227960Z               "line": 259
2026-06-15T13:33:59.4228065Z             },
2026-06-15T13:33:59.4228171Z             {
2026-06-15T13:33:59.4228340Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4228445Z               "line": 269
2026-06-15T13:33:59.4228548Z             },
2026-06-15T13:33:59.4228648Z             {
2026-06-15T13:33:59.4228820Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.4229025Z               "line": 283
2026-06-15T13:33:59.4229125Z             }
2026-06-15T13:33:59.4229229Z           ]
2026-06-15T13:33:59.4229329Z         }
2026-06-15T13:33:59.4229431Z       }
2026-06-15T13:33:59.4229535Z     },
2026-06-15T13:33:59.4229639Z     {
2026-06-15T13:33:59.4229788Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T13:33:59.4229998Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T13:33:59.4230131Z       "requiredStages": [],
2026-06-15T13:33:59.4230236Z       "stages": {
2026-06-15T13:33:59.4230342Z         "doc": {
2026-06-15T13:33:59.4230460Z           "complete": false,
2026-06-15T13:33:59.4230584Z           "evidence": []
2026-06-15T13:33:59.4230686Z         },
2026-06-15T13:33:59.4230793Z         "impl": {
2026-06-15T13:33:59.4230918Z           "complete": false,
2026-06-15T13:33:59.4231024Z           "evidence": []
2026-06-15T13:33:59.4231132Z         },
2026-06-15T13:33:59.4231235Z         "int": {
2026-06-15T13:33:59.4231365Z           "complete": false,
2026-06-15T13:33:59.4231487Z           "evidence": []
2026-06-15T13:33:59.4231582Z         },
2026-06-15T13:33:59.4231683Z         "unit": {
2026-06-15T13:33:59.4231801Z           "complete": false,
2026-06-15T13:33:59.4231916Z           "evidence": []
2026-06-15T13:33:59.4232021Z         }
2026-06-15T13:33:59.4232130Z       }
2026-06-15T13:33:59.4232235Z     },
2026-06-15T13:33:59.4232335Z     {
2026-06-15T13:33:59.4232497Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T13:33:59.4233437Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T13:33:59.4233562Z       "requiredStages": [
2026-06-15T13:33:59.4233670Z         "impl",
2026-06-15T13:33:59.4233774Z         "unit"
2026-06-15T13:33:59.4233879Z       ],
2026-06-15T13:33:59.4233987Z       "stages": {
2026-06-15T13:33:59.4234110Z         "doc": {
2026-06-15T13:33:59.4234225Z           "complete": false,
2026-06-15T13:33:59.4234354Z           "evidence": []
2026-06-15T13:33:59.4234454Z         },
2026-06-15T13:33:59.4234564Z         "impl": {
2026-06-15T13:33:59.4234673Z           "complete": true,
2026-06-15T13:33:59.4234787Z           "evidence": [
2026-06-15T13:33:59.4234893Z             {
2026-06-15T13:33:59.4235040Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4235165Z               "line": 26
2026-06-15T13:33:59.4235383Z             },
2026-06-15T13:33:59.4235494Z             {
2026-06-15T13:33:59.4235646Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4235756Z               "line": 95
2026-06-15T13:33:59.4235856Z             },
2026-06-15T13:33:59.4235961Z             {
2026-06-15T13:33:59.4236119Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4236237Z               "line": 166
2026-06-15T13:33:59.4236342Z             },
2026-06-15T13:33:59.4236551Z             {
2026-06-15T13:33:59.4236703Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4236828Z               "line": 19
2026-06-15T13:33:59.4236932Z             },
2026-06-15T13:33:59.4237042Z             {
2026-06-15T13:33:59.4237200Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4237308Z               "line": 50
2026-06-15T13:33:59.4237419Z             },
2026-06-15T13:33:59.4237524Z             {
2026-06-15T13:33:59.4237681Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:33:59.4237796Z               "line": 18
2026-06-15T13:33:59.4237900Z             },
2026-06-15T13:33:59.4238006Z             {
2026-06-15T13:33:59.4238143Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:33:59.4238257Z               "line": 71
2026-06-15T13:33:59.4238364Z             },
2026-06-15T13:33:59.4238472Z             {
2026-06-15T13:33:59.4238611Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4238726Z               "line": 79
2026-06-15T13:33:59.4238834Z             }
2026-06-15T13:33:59.4239024Z           ]
2026-06-15T13:33:59.4239127Z         },
2026-06-15T13:33:59.4239236Z         "int": {
2026-06-15T13:33:59.4239361Z           "complete": false,
2026-06-15T13:33:59.4239466Z           "evidence": []
2026-06-15T13:33:59.4239575Z         },
2026-06-15T13:33:59.4239690Z         "unit": {
2026-06-15T13:33:59.4239804Z           "complete": true,
2026-06-15T13:33:59.4239933Z           "evidence": [
2026-06-15T13:33:59.4240033Z             {
2026-06-15T13:33:59.4240190Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4240291Z               "line": 289
2026-06-15T13:33:59.4240396Z             },
2026-06-15T13:33:59.4240510Z             {
2026-06-15T13:33:59.4240663Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4240776Z               "line": 314
2026-06-15T13:33:59.4240883Z             },
2026-06-15T13:33:59.4240987Z             {
2026-06-15T13:33:59.4241139Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4241250Z               "line": 350
2026-06-15T13:33:59.4241353Z             },
2026-06-15T13:33:59.4241454Z             {
2026-06-15T13:33:59.4241617Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4241730Z               "line": 418
2026-06-15T13:33:59.4241839Z             },
2026-06-15T13:33:59.4241944Z             {
2026-06-15T13:33:59.4242099Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4242219Z               "line": 429
2026-06-15T13:33:59.4242319Z             },
2026-06-15T13:33:59.4242423Z             {
2026-06-15T13:33:59.4242567Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4242690Z               "line": 460
2026-06-15T13:33:59.4242800Z             },
2026-06-15T13:33:59.4242891Z             {
2026-06-15T13:33:59.4243033Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4243159Z               "line": 471
2026-06-15T13:33:59.4243253Z             },
2026-06-15T13:33:59.4243353Z             {
2026-06-15T13:33:59.4243507Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4243625Z               "line": 77
2026-06-15T13:33:59.4243715Z             },
2026-06-15T13:33:59.4243826Z             {
2026-06-15T13:33:59.4243973Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4244088Z               "line": 97
2026-06-15T13:33:59.4244306Z             },
2026-06-15T13:33:59.4244415Z             {
2026-06-15T13:33:59.4244556Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4244679Z               "line": 112
2026-06-15T13:33:59.4244781Z             },
2026-06-15T13:33:59.4244885Z             {
2026-06-15T13:33:59.4245033Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4245134Z               "line": 123
2026-06-15T13:33:59.4245242Z             },
2026-06-15T13:33:59.4245443Z             {
2026-06-15T13:33:59.4245586Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4245692Z               "line": 130
2026-06-15T13:33:59.4245801Z             },
2026-06-15T13:33:59.4245910Z             {
2026-06-15T13:33:59.4246054Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T13:33:59.4246177Z               "line": 145
2026-06-15T13:33:59.4246282Z             },
2026-06-15T13:33:59.4246383Z             {
2026-06-15T13:33:59.4246526Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:33:59.4246641Z               "line": 115
2026-06-15T13:33:59.4246759Z             },
2026-06-15T13:33:59.4246859Z             {
2026-06-15T13:33:59.4247008Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:33:59.4247130Z               "line": 130
2026-06-15T13:33:59.4247234Z             },
2026-06-15T13:33:59.4247345Z             {
2026-06-15T13:33:59.4247488Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4247617Z               "line": 420
2026-06-15T13:33:59.4247717Z             }
2026-06-15T13:33:59.4247826Z           ]
2026-06-15T13:33:59.4247937Z         }
2026-06-15T13:33:59.4248037Z       }
2026-06-15T13:33:59.4248141Z     },
2026-06-15T13:33:59.4248241Z     {
2026-06-15T13:33:59.4248389Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T13:33:59.4249357Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T13:33:59.4249498Z       "requiredStages": [
2026-06-15T13:33:59.4249608Z         "doc",
2026-06-15T13:33:59.4249716Z         "impl",
2026-06-15T13:33:59.4249820Z         "unit"
2026-06-15T13:33:59.4249922Z       ],
2026-06-15T13:33:59.4250031Z       "stages": {
2026-06-15T13:33:59.4250135Z         "doc": {
2026-06-15T13:33:59.4250255Z           "complete": true,
2026-06-15T13:33:59.4250383Z           "evidence": [
2026-06-15T13:33:59.4250489Z             {
2026-06-15T13:33:59.4250637Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4250750Z               "line": 367
2026-06-15T13:33:59.4250856Z             }
2026-06-15T13:33:59.4250970Z           ]
2026-06-15T13:33:59.4251075Z         },
2026-06-15T13:33:59.4251180Z         "impl": {
2026-06-15T13:33:59.4251299Z           "complete": true,
2026-06-15T13:33:59.4251404Z           "evidence": [
2026-06-15T13:33:59.4251515Z             {
2026-06-15T13:33:59.4251675Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4251791Z               "line": 199
2026-06-15T13:33:59.4251900Z             },
2026-06-15T13:33:59.4252004Z             {
2026-06-15T13:33:59.4252149Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4252270Z               "line": 303
2026-06-15T13:33:59.4252375Z             },
2026-06-15T13:33:59.4252480Z             {
2026-06-15T13:33:59.4252630Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4252740Z               "line": 515
2026-06-15T13:33:59.4252841Z             },
2026-06-15T13:33:59.4252940Z             {
2026-06-15T13:33:59.4253089Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4253208Z               "line": 530
2026-06-15T13:33:59.4253317Z             },
2026-06-15T13:33:59.4253428Z             {
2026-06-15T13:33:59.4253569Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4253803Z               "line": 1127
2026-06-15T13:33:59.4253899Z             },
2026-06-15T13:33:59.4254009Z             {
2026-06-15T13:33:59.4254161Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4254285Z               "line": 443
2026-06-15T13:33:59.4254387Z             },
2026-06-15T13:33:59.4254485Z             {
2026-06-15T13:33:59.4254639Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4254743Z               "line": 590
2026-06-15T13:33:59.4254985Z             },
2026-06-15T13:33:59.4255093Z             {
2026-06-15T13:33:59.4255235Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4255355Z               "line": 731
2026-06-15T13:33:59.4255445Z             }
2026-06-15T13:33:59.4255554Z           ]
2026-06-15T13:33:59.4255661Z         },
2026-06-15T13:33:59.4255770Z         "int": {
2026-06-15T13:33:59.4255888Z           "complete": false,
2026-06-15T13:33:59.4256018Z           "evidence": []
2026-06-15T13:33:59.4256122Z         },
2026-06-15T13:33:59.4256233Z         "unit": {
2026-06-15T13:33:59.4256342Z           "complete": true,
2026-06-15T13:33:59.4256451Z           "evidence": [
2026-06-15T13:33:59.4256561Z             {
2026-06-15T13:33:59.4256709Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4256837Z               "line": 1155
2026-06-15T13:33:59.4256962Z             },
2026-06-15T13:33:59.4257066Z             {
2026-06-15T13:33:59.4257249Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T13:33:59.4257366Z               "line": 30
2026-06-15T13:33:59.4257482Z             }
2026-06-15T13:33:59.4257592Z           ]
2026-06-15T13:33:59.4257695Z         }
2026-06-15T13:33:59.4257799Z       }
2026-06-15T13:33:59.4257900Z     },
2026-06-15T13:33:59.4258010Z     {
2026-06-15T13:33:59.4258143Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T13:33:59.4258433Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T13:33:59.4258573Z       "requiredStages": [
2026-06-15T13:33:59.4258682Z         "impl",
2026-06-15T13:33:59.4258787Z         "unit"
2026-06-15T13:33:59.4258892Z       ],
2026-06-15T13:33:59.4259082Z       "stages": {
2026-06-15T13:33:59.4259179Z         "doc": {
2026-06-15T13:33:59.4259307Z           "complete": true,
2026-06-15T13:33:59.4259422Z           "evidence": [
2026-06-15T13:33:59.4259522Z             {
2026-06-15T13:33:59.4259674Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4259780Z               "line": 139
2026-06-15T13:33:59.4259883Z             }
2026-06-15T13:33:59.4259987Z           ]
2026-06-15T13:33:59.4260092Z         },
2026-06-15T13:33:59.4260201Z         "impl": {
2026-06-15T13:33:59.4260323Z           "complete": true,
2026-06-15T13:33:59.4260438Z           "evidence": [
2026-06-15T13:33:59.4260539Z             {
2026-06-15T13:33:59.4260686Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T13:33:59.4260806Z               "line": 29
2026-06-15T13:33:59.4260915Z             },
2026-06-15T13:33:59.4261034Z             {
2026-06-15T13:33:59.4261177Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4261300Z               "line": 101
2026-06-15T13:33:59.4261402Z             },
2026-06-15T13:33:59.4261511Z             {
2026-06-15T13:33:59.4261654Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4261774Z               "line": 30
2026-06-15T13:33:59.4261893Z             },
2026-06-15T13:33:59.4261988Z             {
2026-06-15T13:33:59.4262140Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4262245Z               "line": 48
2026-06-15T13:33:59.4262351Z             }
2026-06-15T13:33:59.4262450Z           ]
2026-06-15T13:33:59.4262555Z         },
2026-06-15T13:33:59.4262661Z         "int": {
2026-06-15T13:33:59.4262784Z           "complete": false,
2026-06-15T13:33:59.4262897Z           "evidence": []
2026-06-15T13:33:59.4263110Z         },
2026-06-15T13:33:59.4263229Z         "unit": {
2026-06-15T13:33:59.4263344Z           "complete": true,
2026-06-15T13:33:59.4263463Z           "evidence": [
2026-06-15T13:33:59.4263567Z             {
2026-06-15T13:33:59.4263720Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4263839Z               "line": 162
2026-06-15T13:33:59.4263945Z             }
2026-06-15T13:33:59.4264039Z           ]
2026-06-15T13:33:59.4264134Z         }
2026-06-15T13:33:59.4264336Z       }
2026-06-15T13:33:59.4264440Z     },
2026-06-15T13:33:59.4264545Z     {
2026-06-15T13:33:59.4264697Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T13:33:59.4265117Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T13:33:59.4265242Z       "requiredStages": [
2026-06-15T13:33:59.4265346Z         "doc",
2026-06-15T13:33:59.4265450Z         "impl",
2026-06-15T13:33:59.4265569Z         "unit"
2026-06-15T13:33:59.4265672Z       ],
2026-06-15T13:33:59.4265781Z       "stages": {
2026-06-15T13:33:59.4265886Z         "doc": {
2026-06-15T13:33:59.4266010Z           "complete": true,
2026-06-15T13:33:59.4266114Z           "evidence": [
2026-06-15T13:33:59.4266226Z             {
2026-06-15T13:33:59.4266372Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4266483Z               "line": 151
2026-06-15T13:33:59.4266592Z             }
2026-06-15T13:33:59.4266691Z           ]
2026-06-15T13:33:59.4266807Z         },
2026-06-15T13:33:59.4266916Z         "impl": {
2026-06-15T13:33:59.4267040Z           "complete": true,
2026-06-15T13:33:59.4267161Z           "evidence": [
2026-06-15T13:33:59.4267264Z             {
2026-06-15T13:33:59.4267417Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4267532Z               "line": 22
2026-06-15T13:33:59.4267646Z             }
2026-06-15T13:33:59.4267747Z           ]
2026-06-15T13:33:59.4267851Z         },
2026-06-15T13:33:59.4267970Z         "int": {
2026-06-15T13:33:59.4268090Z           "complete": false,
2026-06-15T13:33:59.4268203Z           "evidence": []
2026-06-15T13:33:59.4268308Z         },
2026-06-15T13:33:59.4268417Z         "unit": {
2026-06-15T13:33:59.4268523Z           "complete": true,
2026-06-15T13:33:59.4268641Z           "evidence": [
2026-06-15T13:33:59.4268742Z             {
2026-06-15T13:33:59.4268889Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4269081Z               "line": 298
2026-06-15T13:33:59.4269195Z             }
2026-06-15T13:33:59.4269299Z           ]
2026-06-15T13:33:59.4269401Z         }
2026-06-15T13:33:59.4269504Z       }
2026-06-15T13:33:59.4269609Z     },
2026-06-15T13:33:59.4269710Z     {
2026-06-15T13:33:59.4269857Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T13:33:59.4270335Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T13:33:59.4274553Z       "requiredStages": [
2026-06-15T13:33:59.4274690Z         "impl",
2026-06-15T13:33:59.4274795Z         "unit"
2026-06-15T13:33:59.4274905Z       ],
2026-06-15T13:33:59.4275005Z       "stages": {
2026-06-15T13:33:59.4275115Z         "doc": {
2026-06-15T13:33:59.4275230Z           "complete": true,
2026-06-15T13:33:59.4275353Z           "evidence": [
2026-06-15T13:33:59.4275459Z             {
2026-06-15T13:33:59.4275605Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4275745Z               "line": 145
2026-06-15T13:33:59.4275845Z             }
2026-06-15T13:33:59.4275953Z           ]
2026-06-15T13:33:59.4276057Z         },
2026-06-15T13:33:59.4276172Z         "impl": {
2026-06-15T13:33:59.4276289Z           "complete": true,
2026-06-15T13:33:59.4276409Z           "evidence": [
2026-06-15T13:33:59.4276529Z             {
2026-06-15T13:33:59.4276708Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:33:59.4276833Z               "line": 160
2026-06-15T13:33:59.4277101Z             },
2026-06-15T13:33:59.4277210Z             {
2026-06-15T13:33:59.4277377Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4277495Z               "line": 200
2026-06-15T13:33:59.4277600Z             },
2026-06-15T13:33:59.4277701Z             {
2026-06-15T13:33:59.4277863Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4277977Z               "line": 298
2026-06-15T13:33:59.4278088Z             },
2026-06-15T13:33:59.4278287Z             {
2026-06-15T13:33:59.4278449Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:33:59.4278559Z               "line": 20
2026-06-15T13:33:59.4278665Z             }
2026-06-15T13:33:59.4278768Z           ]
2026-06-15T13:33:59.4278873Z         },
2026-06-15T13:33:59.4279069Z         "int": {
2026-06-15T13:33:59.4279187Z           "complete": false,
2026-06-15T13:33:59.4279287Z           "evidence": []
2026-06-15T13:33:59.4279397Z         },
2026-06-15T13:33:59.4279511Z         "unit": {
2026-06-15T13:33:59.4279636Z           "complete": true,
2026-06-15T13:33:59.4279746Z           "evidence": [
2026-06-15T13:33:59.4279850Z             {
2026-06-15T13:33:59.4280017Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4280126Z               "line": 885
2026-06-15T13:33:59.4280237Z             },
2026-06-15T13:33:59.4280337Z             {
2026-06-15T13:33:59.4280498Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T13:33:59.4280605Z               "line": 88
2026-06-15T13:33:59.4280717Z             },
2026-06-15T13:33:59.4280813Z             {
2026-06-15T13:33:59.4280962Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4281070Z               "line": 819
2026-06-15T13:33:59.4281174Z             },
2026-06-15T13:33:59.4281284Z             {
2026-06-15T13:33:59.4281429Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4281549Z               "line": 838
2026-06-15T13:33:59.4281664Z             },
2026-06-15T13:33:59.4281768Z             {
2026-06-15T13:33:59.4281917Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4282030Z               "line": 279
2026-06-15T13:33:59.4282140Z             },
2026-06-15T13:33:59.4282246Z             {
2026-06-15T13:33:59.4282393Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:33:59.4282513Z               "line": 82
2026-06-15T13:33:59.4282613Z             },
2026-06-15T13:33:59.4282731Z             {
2026-06-15T13:33:59.4282870Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:33:59.4282993Z               "line": 99
2026-06-15T13:33:59.4283094Z             },
2026-06-15T13:33:59.4283204Z             {
2026-06-15T13:33:59.4283351Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T13:33:59.4283462Z               "line": 119
2026-06-15T13:33:59.4283561Z             }
2026-06-15T13:33:59.4283671Z           ]
2026-06-15T13:33:59.4283782Z         }
2026-06-15T13:33:59.4283885Z       }
2026-06-15T13:33:59.4283989Z     },
2026-06-15T13:33:59.4284094Z     {
2026-06-15T13:33:59.4284235Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T13:33:59.4285656Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T13:33:59.4285790Z       "requiredStages": [
2026-06-15T13:33:59.4285899Z         "doc",
2026-06-15T13:33:59.4286015Z         "impl",
2026-06-15T13:33:59.4286119Z         "unit"
2026-06-15T13:33:59.4286233Z       ],
2026-06-15T13:33:59.4286344Z       "stages": {
2026-06-15T13:33:59.4286452Z         "doc": {
2026-06-15T13:33:59.4286684Z           "complete": true,
2026-06-15T13:33:59.4286807Z           "evidence": [
2026-06-15T13:33:59.4286920Z             {
2026-06-15T13:33:59.4287059Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4287177Z               "line": 157
2026-06-15T13:33:59.4287283Z             }
2026-06-15T13:33:59.4287388Z           ]
2026-06-15T13:33:59.4287488Z         },
2026-06-15T13:33:59.4287603Z         "impl": {
2026-06-15T13:33:59.4287726Z           "complete": true,
2026-06-15T13:33:59.4287850Z           "evidence": [
2026-06-15T13:33:59.4288051Z             {
2026-06-15T13:33:59.4288217Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.4288328Z               "line": 137
2026-06-15T13:33:59.4288428Z             },
2026-06-15T13:33:59.4288528Z             {
2026-06-15T13:33:59.4288694Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4288804Z               "line": 512
2026-06-15T13:33:59.4288900Z             },
2026-06-15T13:33:59.4289071Z             {
2026-06-15T13:33:59.4289234Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4289338Z               "line": 519
2026-06-15T13:33:59.4289447Z             },
2026-06-15T13:33:59.4289552Z             {
2026-06-15T13:33:59.4289699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4289818Z               "line": 227
2026-06-15T13:33:59.4289915Z             }
2026-06-15T13:33:59.4290019Z           ]
2026-06-15T13:33:59.4290123Z         },
2026-06-15T13:33:59.4290234Z         "int": {
2026-06-15T13:33:59.4290357Z           "complete": false,
2026-06-15T13:33:59.4290472Z           "evidence": []
2026-06-15T13:33:59.4290573Z         },
2026-06-15T13:33:59.4290677Z         "unit": {
2026-06-15T13:33:59.4290802Z           "complete": true,
2026-06-15T13:33:59.4290915Z           "evidence": [
2026-06-15T13:33:59.4291020Z             {
2026-06-15T13:33:59.4291189Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4291301Z               "line": 1515
2026-06-15T13:33:59.4291402Z             },
2026-06-15T13:33:59.4291508Z             {
2026-06-15T13:33:59.4291663Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4291777Z               "line": 1573
2026-06-15T13:33:59.4291881Z             },
2026-06-15T13:33:59.4291985Z             {
2026-06-15T13:33:59.4292138Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4292261Z               "line": 851
2026-06-15T13:33:59.4292366Z             }
2026-06-15T13:33:59.4292477Z           ]
2026-06-15T13:33:59.4292586Z         }
2026-06-15T13:33:59.4292685Z       }
2026-06-15T13:33:59.4292796Z     },
2026-06-15T13:33:59.4292895Z     {
2026-06-15T13:33:59.4293044Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T13:33:59.4293253Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T13:33:59.4293383Z       "requiredStages": [
2026-06-15T13:33:59.4293492Z         "impl",
2026-06-15T13:33:59.4293597Z         "unit"
2026-06-15T13:33:59.4293703Z       ],
2026-06-15T13:33:59.4293806Z       "stages": {
2026-06-15T13:33:59.4293921Z         "doc": {
2026-06-15T13:33:59.4294042Z           "complete": false,
2026-06-15T13:33:59.4294164Z           "evidence": []
2026-06-15T13:33:59.4294269Z         },
2026-06-15T13:33:59.4294371Z         "impl": {
2026-06-15T13:33:59.4294488Z           "complete": true,
2026-06-15T13:33:59.4294587Z           "evidence": [
2026-06-15T13:33:59.4294697Z             {
2026-06-15T13:33:59.4294843Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4294966Z               "line": 15
2026-06-15T13:33:59.4295072Z             },
2026-06-15T13:33:59.4295176Z             {
2026-06-15T13:33:59.4295334Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4295439Z               "line": 55
2026-06-15T13:33:59.4295547Z             },
2026-06-15T13:33:59.4295654Z             {
2026-06-15T13:33:59.4295810Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4296054Z               "line": 66
2026-06-15T13:33:59.4296163Z             },
2026-06-15T13:33:59.4296274Z             {
2026-06-15T13:33:59.4296425Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4296550Z               "line": 115
2026-06-15T13:33:59.4296660Z             },
2026-06-15T13:33:59.4296759Z             {
2026-06-15T13:33:59.4296904Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4297125Z               "line": 138
2026-06-15T13:33:59.4297226Z             }
2026-06-15T13:33:59.4297334Z           ]
2026-06-15T13:33:59.4297442Z         },
2026-06-15T13:33:59.4297543Z         "int": {
2026-06-15T13:33:59.4297677Z           "complete": false,
2026-06-15T13:33:59.4297805Z           "evidence": []
2026-06-15T13:33:59.4297906Z         },
2026-06-15T13:33:59.4298011Z         "unit": {
2026-06-15T13:33:59.4298129Z           "complete": true,
2026-06-15T13:33:59.4298239Z           "evidence": [
2026-06-15T13:33:59.4298335Z             {
2026-06-15T13:33:59.4298483Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4298597Z               "line": 149
2026-06-15T13:33:59.4298701Z             },
2026-06-15T13:33:59.4298802Z             {
2026-06-15T13:33:59.4298935Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4299184Z               "line": 155
2026-06-15T13:33:59.4299287Z             },
2026-06-15T13:33:59.4299393Z             {
2026-06-15T13:33:59.4299541Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4299641Z               "line": 169
2026-06-15T13:33:59.4299752Z             },
2026-06-15T13:33:59.4299852Z             {
2026-06-15T13:33:59.4299997Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4300107Z               "line": 178
2026-06-15T13:33:59.4300218Z             },
2026-06-15T13:33:59.4300316Z             {
2026-06-15T13:33:59.4300466Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4300589Z               "line": 195
2026-06-15T13:33:59.4300688Z             },
2026-06-15T13:33:59.4300795Z             {
2026-06-15T13:33:59.4300936Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4301057Z               "line": 208
2026-06-15T13:33:59.4301152Z             },
2026-06-15T13:33:59.4301251Z             {
2026-06-15T13:33:59.4301405Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4301513Z               "line": 271
2026-06-15T13:33:59.4301633Z             },
2026-06-15T13:33:59.4301739Z             {
2026-06-15T13:33:59.4301890Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4302011Z               "line": 290
2026-06-15T13:33:59.4302115Z             },
2026-06-15T13:33:59.4302219Z             {
2026-06-15T13:33:59.4302366Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4302483Z               "line": 319
2026-06-15T13:33:59.4302606Z             }
2026-06-15T13:33:59.4302708Z           ]
2026-06-15T13:33:59.4302817Z         }
2026-06-15T13:33:59.4302916Z       }
2026-06-15T13:33:59.4303027Z     },
2026-06-15T13:33:59.4303127Z     {
2026-06-15T13:33:59.4303275Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T13:33:59.4303585Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T13:33:59.4303704Z       "requiredStages": [
2026-06-15T13:33:59.4303804Z         "impl",
2026-06-15T13:33:59.4303924Z         "unit",
2026-06-15T13:33:59.4304033Z         "int"
2026-06-15T13:33:59.4304128Z       ],
2026-06-15T13:33:59.4304248Z       "stages": {
2026-06-15T13:33:59.4304366Z         "doc": {
2026-06-15T13:33:59.4304486Z           "complete": false,
2026-06-15T13:33:59.4304607Z           "evidence": []
2026-06-15T13:33:59.4304704Z         },
2026-06-15T13:33:59.4304805Z         "impl": {
2026-06-15T13:33:59.4304921Z           "complete": true,
2026-06-15T13:33:59.4305147Z           "evidence": [
2026-06-15T13:33:59.4305243Z             {
2026-06-15T13:33:59.4305393Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4305512Z               "line": 447
2026-06-15T13:33:59.4305623Z             },
2026-06-15T13:33:59.4305727Z             {
2026-06-15T13:33:59.4305876Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4305999Z               "line": 867
2026-06-15T13:33:59.4306103Z             },
2026-06-15T13:33:59.4306209Z             {
2026-06-15T13:33:59.4306462Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4306581Z               "line": 912
2026-06-15T13:33:59.4306685Z             },
2026-06-15T13:33:59.4306791Z             {
2026-06-15T13:33:59.4306938Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.4307062Z               "line": 937
2026-06-15T13:33:59.4307173Z             },
2026-06-15T13:33:59.4307281Z             {
2026-06-15T13:33:59.4307435Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4307563Z               "line": 987
2026-06-15T13:33:59.4307661Z             },
2026-06-15T13:33:59.4307762Z             {
2026-06-15T13:33:59.4307908Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4308021Z               "line": 1113
2026-06-15T13:33:59.4308132Z             },
2026-06-15T13:33:59.4308232Z             {
2026-06-15T13:33:59.4308379Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4308495Z               "line": 1244
2026-06-15T13:33:59.4308603Z             },
2026-06-15T13:33:59.4308708Z             {
2026-06-15T13:33:59.4308856Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4309053Z               "line": 1292
2026-06-15T13:33:59.4309157Z             },
2026-06-15T13:33:59.4309266Z             {
2026-06-15T13:33:59.4309410Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.4309529Z               "line": 46
2026-06-15T13:33:59.4309638Z             },
2026-06-15T13:33:59.4309744Z             {
2026-06-15T13:33:59.4309891Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.4309997Z               "line": 167
2026-06-15T13:33:59.4310101Z             },
2026-06-15T13:33:59.4310206Z             {
2026-06-15T13:33:59.4310355Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4310468Z               "line": 132
2026-06-15T13:33:59.4310562Z             },
2026-06-15T13:33:59.4310663Z             {
2026-06-15T13:33:59.4310811Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4310925Z               "line": 137
2026-06-15T13:33:59.4311040Z             },
2026-06-15T13:33:59.4311140Z             {
2026-06-15T13:33:59.4311283Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4311397Z               "line": 183
2026-06-15T13:33:59.4311506Z             }
2026-06-15T13:33:59.4311607Z           ]
2026-06-15T13:33:59.4311712Z         },
2026-06-15T13:33:59.4311830Z         "int": {
2026-06-15T13:33:59.4311941Z           "complete": true,
2026-06-15T13:33:59.4312055Z           "evidence": [
2026-06-15T13:33:59.4312159Z             {
2026-06-15T13:33:59.4312327Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T13:33:59.4312436Z               "line": 27
2026-06-15T13:33:59.4312536Z             },
2026-06-15T13:33:59.4312642Z             {
2026-06-15T13:33:59.4312807Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T13:33:59.4312926Z               "line": 129
2026-06-15T13:33:59.4313030Z             },
2026-06-15T13:33:59.4313138Z             {
2026-06-15T13:33:59.4313296Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T13:33:59.4313410Z               "line": 200
2026-06-15T13:33:59.4313515Z             }
2026-06-15T13:33:59.4313616Z           ]
2026-06-15T13:33:59.4313720Z         },
2026-06-15T13:33:59.4313825Z         "unit": {
2026-06-15T13:33:59.4313944Z           "complete": true,
2026-06-15T13:33:59.4314174Z           "evidence": [
2026-06-15T13:33:59.4314288Z             {
2026-06-15T13:33:59.4314454Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.4314565Z               "line": 313
2026-06-15T13:33:59.4314669Z             },
2026-06-15T13:33:59.4314769Z             {
2026-06-15T13:33:59.4314926Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.4315031Z               "line": 345
2026-06-15T13:33:59.4315133Z             },
2026-06-15T13:33:59.4315341Z             {
2026-06-15T13:33:59.4315486Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T13:33:59.4315608Z               "line": 366
2026-06-15T13:33:59.4315712Z             },
2026-06-15T13:33:59.4315827Z             {
2026-06-15T13:33:59.4315972Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4316091Z               "line": 508
2026-06-15T13:33:59.4316216Z             },
2026-06-15T13:33:59.4316325Z             {
2026-06-15T13:33:59.4316493Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:33:59.4316611Z               "line": 289
2026-06-15T13:33:59.4316726Z             },
2026-06-15T13:33:59.4316831Z             {
2026-06-15T13:33:59.4316983Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:33:59.4317099Z               "line": 230
2026-06-15T13:33:59.4317203Z             },
2026-06-15T13:33:59.4317303Z             {
2026-06-15T13:33:59.4317441Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4317574Z               "line": 526
2026-06-15T13:33:59.4317680Z             },
2026-06-15T13:33:59.4317789Z             {
2026-06-15T13:33:59.4317928Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4318039Z               "line": 556
2026-06-15T13:33:59.4318137Z             }
2026-06-15T13:33:59.4318241Z           ]
2026-06-15T13:33:59.4318346Z         }
2026-06-15T13:33:59.4318449Z       }
2026-06-15T13:33:59.4318548Z     },
2026-06-15T13:33:59.4318668Z     {
2026-06-15T13:33:59.4318825Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T13:33:59.4320694Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T13:33:59.4320823Z       "requiredStages": [
2026-06-15T13:33:59.4320925Z         "doc",
2026-06-15T13:33:59.4321032Z         "impl",
2026-06-15T13:33:59.4321136Z         "unit"
2026-06-15T13:33:59.4321246Z       ],
2026-06-15T13:33:59.4321357Z       "stages": {
2026-06-15T13:33:59.4321460Z         "doc": {
2026-06-15T13:33:59.4321591Z           "complete": true,
2026-06-15T13:33:59.4321700Z           "evidence": [
2026-06-15T13:33:59.4321809Z             {
2026-06-15T13:33:59.4321948Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4322062Z               "line": 307
2026-06-15T13:33:59.4322167Z             }
2026-06-15T13:33:59.4322267Z           ]
2026-06-15T13:33:59.4322376Z         },
2026-06-15T13:33:59.4322487Z         "impl": {
2026-06-15T13:33:59.4322615Z           "complete": true,
2026-06-15T13:33:59.4322724Z           "evidence": [
2026-06-15T13:33:59.4322831Z             {
2026-06-15T13:33:59.4322996Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:33:59.4323111Z               "line": 33
2026-06-15T13:33:59.4323221Z             },
2026-06-15T13:33:59.4323329Z             {
2026-06-15T13:33:59.4323501Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:33:59.4323613Z               "line": 39
2026-06-15T13:33:59.4323718Z             }
2026-06-15T13:33:59.4323933Z           ]
2026-06-15T13:33:59.4324046Z         },
2026-06-15T13:33:59.4324153Z         "int": {
2026-06-15T13:33:59.4324276Z           "complete": false,
2026-06-15T13:33:59.4324385Z           "evidence": []
2026-06-15T13:33:59.4324486Z         },
2026-06-15T13:33:59.4324590Z         "unit": {
2026-06-15T13:33:59.4324715Z           "complete": true,
2026-06-15T13:33:59.4324834Z           "evidence": [
2026-06-15T13:33:59.4324943Z             {
2026-06-15T13:33:59.4325101Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T13:33:59.4325320Z               "line": 95
2026-06-15T13:33:59.4325426Z             }
2026-06-15T13:33:59.4325534Z           ]
2026-06-15T13:33:59.4325635Z         }
2026-06-15T13:33:59.4325745Z       }
2026-06-15T13:33:59.4325844Z     },
2026-06-15T13:33:59.4325950Z     {
2026-06-15T13:33:59.4326094Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T13:33:59.4328401Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T13:33:59.4328546Z       "requiredStages": [
2026-06-15T13:33:59.4328660Z         "unit"
2026-06-15T13:33:59.4328763Z       ],
2026-06-15T13:33:59.4328873Z       "stages": {
2026-06-15T13:33:59.4329047Z         "doc": {
2026-06-15T13:33:59.4329165Z           "complete": false,
2026-06-15T13:33:59.4329281Z           "evidence": []
2026-06-15T13:33:59.4329390Z         },
2026-06-15T13:33:59.4329500Z         "impl": {
2026-06-15T13:33:59.4329610Z           "complete": true,
2026-06-15T13:33:59.4329728Z           "evidence": [
2026-06-15T13:33:59.4329824Z             {
2026-06-15T13:33:59.4329972Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4330076Z               "line": 3076
2026-06-15T13:33:59.4330187Z             },
2026-06-15T13:33:59.4330296Z             {
2026-06-15T13:33:59.4330429Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4330559Z               "line": 3128
2026-06-15T13:33:59.4330663Z             },
2026-06-15T13:33:59.4330773Z             {
2026-06-15T13:33:59.4330902Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4331007Z               "line": 3173
2026-06-15T13:33:59.4331112Z             },
2026-06-15T13:33:59.4331217Z             {
2026-06-15T13:33:59.4331360Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4331471Z               "line": 92
2026-06-15T13:33:59.4331574Z             },
2026-06-15T13:33:59.4331682Z             {
2026-06-15T13:33:59.4331821Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4331935Z               "line": 148
2026-06-15T13:33:59.4332040Z             },
2026-06-15T13:33:59.4332146Z             {
2026-06-15T13:33:59.4332293Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4332393Z               "line": 192
2026-06-15T13:33:59.4332508Z             },
2026-06-15T13:33:59.4332607Z             {
2026-06-15T13:33:59.4332756Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4332865Z               "line": 200
2026-06-15T13:33:59.4332979Z             },
2026-06-15T13:33:59.4333095Z             {
2026-06-15T13:33:59.4333223Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4333347Z               "line": 211
2026-06-15T13:33:59.4333452Z             },
2026-06-15T13:33:59.4333556Z             {
2026-06-15T13:33:59.4333691Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4333947Z               "line": 265
2026-06-15T13:33:59.4334051Z             },
2026-06-15T13:33:59.4334155Z             {
2026-06-15T13:33:59.4334292Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4334412Z               "line": 279
2026-06-15T13:33:59.4334517Z             }
2026-06-15T13:33:59.4334621Z           ]
2026-06-15T13:33:59.4334760Z         },
2026-06-15T13:33:59.4334869Z         "int": {
2026-06-15T13:33:59.4334984Z           "complete": false,
2026-06-15T13:33:59.4335207Z           "evidence": []
2026-06-15T13:33:59.4335309Z         },
2026-06-15T13:33:59.4335422Z         "unit": {
2026-06-15T13:33:59.4335541Z           "complete": true,
2026-06-15T13:33:59.4335652Z           "evidence": [
2026-06-15T13:33:59.4335761Z             {
2026-06-15T13:33:59.4335899Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4336019Z               "line": 419
2026-06-15T13:33:59.4336119Z             },
2026-06-15T13:33:59.4336239Z             {
2026-06-15T13:33:59.4336376Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4336500Z               "line": 470
2026-06-15T13:33:59.4336611Z             },
2026-06-15T13:33:59.4336714Z             {
2026-06-15T13:33:59.4336861Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4336971Z               "line": 499
2026-06-15T13:33:59.4337083Z             },
2026-06-15T13:33:59.4337183Z             {
2026-06-15T13:33:59.4337317Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4337440Z               "line": 526
2026-06-15T13:33:59.4337536Z             }
2026-06-15T13:33:59.4337646Z           ]
2026-06-15T13:33:59.4337740Z         }
2026-06-15T13:33:59.4337851Z       }
2026-06-15T13:33:59.4337946Z     },
2026-06-15T13:33:59.4338055Z     {
2026-06-15T13:33:59.4338204Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T13:33:59.4338428Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T13:33:59.4338557Z       "requiredStages": [
2026-06-15T13:33:59.4338661Z         "impl",
2026-06-15T13:33:59.4338766Z         "unit"
2026-06-15T13:33:59.4338858Z       ],
2026-06-15T13:33:59.4339057Z       "stages": {
2026-06-15T13:33:59.4339168Z         "doc": {
2026-06-15T13:33:59.4339280Z           "complete": false,
2026-06-15T13:33:59.4339389Z           "evidence": []
2026-06-15T13:33:59.4339490Z         },
2026-06-15T13:33:59.4339602Z         "impl": {
2026-06-15T13:33:59.4339716Z           "complete": true,
2026-06-15T13:33:59.4339831Z           "evidence": [
2026-06-15T13:33:59.4339940Z             {
2026-06-15T13:33:59.4340103Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4340213Z               "line": 62
2026-06-15T13:33:59.4340317Z             },
2026-06-15T13:33:59.4340428Z             {
2026-06-15T13:33:59.4340594Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4340709Z               "line": 71
2026-06-15T13:33:59.4340823Z             },
2026-06-15T13:33:59.4340927Z             {
2026-06-15T13:33:59.4341091Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4341200Z               "line": 80
2026-06-15T13:33:59.4341304Z             },
2026-06-15T13:33:59.4341406Z             {
2026-06-15T13:33:59.4341557Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4341673Z               "line": 88
2026-06-15T13:33:59.4341768Z             },
2026-06-15T13:33:59.4341886Z             {
2026-06-15T13:33:59.4342031Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4342143Z               "line": 33
2026-06-15T13:33:59.4342242Z             },
2026-06-15T13:33:59.4342353Z             {
2026-06-15T13:33:59.4342505Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4342614Z               "line": 65
2026-06-15T13:33:59.4342715Z             },
2026-06-15T13:33:59.4342815Z             {
2026-06-15T13:33:59.4343068Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4343177Z               "line": 74
2026-06-15T13:33:59.4343278Z             },
2026-06-15T13:33:59.4343387Z             {
2026-06-15T13:33:59.4343530Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4343650Z               "line": 93
2026-06-15T13:33:59.4343754Z             },
2026-06-15T13:33:59.4343859Z             {
2026-06-15T13:33:59.4344007Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4344217Z               "line": 102
2026-06-15T13:33:59.4344332Z             },
2026-06-15T13:33:59.4344435Z             {
2026-06-15T13:33:59.4344583Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4344691Z               "line": 111
2026-06-15T13:33:59.4344804Z             },
2026-06-15T13:33:59.4344905Z             {
2026-06-15T13:33:59.4345034Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4345147Z               "line": 122
2026-06-15T13:33:59.4345263Z             },
2026-06-15T13:33:59.4345367Z             {
2026-06-15T13:33:59.4345501Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4345625Z               "line": 140
2026-06-15T13:33:59.4345730Z             },
2026-06-15T13:33:59.4345830Z             {
2026-06-15T13:33:59.4345978Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4346091Z               "line": 149
2026-06-15T13:33:59.4346202Z             },
2026-06-15T13:33:59.4346307Z             {
2026-06-15T13:33:59.4346460Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4346584Z               "line": 158
2026-06-15T13:33:59.4346689Z             },
2026-06-15T13:33:59.4346799Z             {
2026-06-15T13:33:59.4346941Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4347055Z               "line": 169
2026-06-15T13:33:59.4347152Z             },
2026-06-15T13:33:59.4347265Z             {
2026-06-15T13:33:59.4347411Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4347531Z               "line": 177
2026-06-15T13:33:59.4347638Z             },
2026-06-15T13:33:59.4347743Z             {
2026-06-15T13:33:59.4347892Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4348000Z               "line": 186
2026-06-15T13:33:59.4348111Z             },
2026-06-15T13:33:59.4348221Z             {
2026-06-15T13:33:59.4348363Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4348493Z               "line": 195
2026-06-15T13:33:59.4348588Z             },
2026-06-15T13:33:59.4348692Z             {
2026-06-15T13:33:59.4348826Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4348931Z               "line": 204
2026-06-15T13:33:59.4349127Z             },
2026-06-15T13:33:59.4349226Z             {
2026-06-15T13:33:59.4349371Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4349470Z               "line": 216
2026-06-15T13:33:59.4349584Z             },
2026-06-15T13:33:59.4349681Z             {
2026-06-15T13:33:59.4349822Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4349940Z               "line": 223
2026-06-15T13:33:59.4350040Z             },
2026-06-15T13:33:59.4350144Z             {
2026-06-15T13:33:59.4350281Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4350397Z               "line": 232
2026-06-15T13:33:59.4350515Z             },
2026-06-15T13:33:59.4350605Z             {
2026-06-15T13:33:59.4350749Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4350863Z               "line": 239
2026-06-15T13:33:59.4350973Z             },
2026-06-15T13:33:59.4351083Z             {
2026-06-15T13:33:59.4351230Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4351351Z               "line": 306
2026-06-15T13:33:59.4351455Z             },
2026-06-15T13:33:59.4351559Z             {
2026-06-15T13:33:59.4351698Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4351923Z               "line": 318
2026-06-15T13:33:59.4352018Z             },
2026-06-15T13:33:59.4352136Z             {
2026-06-15T13:33:59.4352300Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4352403Z               "line": 405
2026-06-15T13:33:59.4352513Z             }
2026-06-15T13:33:59.4352610Z           ]
2026-06-15T13:33:59.4352717Z         },
2026-06-15T13:33:59.4352812Z         "int": {
2026-06-15T13:33:59.4352937Z           "complete": false,
2026-06-15T13:33:59.4353150Z           "evidence": []
2026-06-15T13:33:59.4353252Z         },
2026-06-15T13:33:59.4353361Z         "unit": {
2026-06-15T13:33:59.4353470Z           "complete": true,
2026-06-15T13:33:59.4353581Z           "evidence": [
2026-06-15T13:33:59.4353685Z             {
2026-06-15T13:33:59.4353838Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4353952Z               "line": 487
2026-06-15T13:33:59.4354056Z             },
2026-06-15T13:33:59.4354177Z             {
2026-06-15T13:33:59.4354314Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4354438Z               "line": 528
2026-06-15T13:33:59.4354544Z             },
2026-06-15T13:33:59.4354653Z             {
2026-06-15T13:33:59.4354797Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4354901Z               "line": 541
2026-06-15T13:33:59.4355010Z             },
2026-06-15T13:33:59.4355109Z             {
2026-06-15T13:33:59.4355256Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4355374Z               "line": 627
2026-06-15T13:33:59.4355485Z             }
2026-06-15T13:33:59.4355585Z           ]
2026-06-15T13:33:59.4355693Z         }
2026-06-15T13:33:59.4355799Z       }
2026-06-15T13:33:59.4355899Z     },
2026-06-15T13:33:59.4356003Z     {
2026-06-15T13:33:59.4356143Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T13:33:59.4356381Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T13:33:59.4356514Z       "requiredStages": [
2026-06-15T13:33:59.4356623Z         "impl",
2026-06-15T13:33:59.4356734Z         "unit"
2026-06-15T13:33:59.4356838Z       ],
2026-06-15T13:33:59.4356953Z       "stages": {
2026-06-15T13:33:59.4357044Z         "doc": {
2026-06-15T13:33:59.4357167Z           "complete": false,
2026-06-15T13:33:59.4357282Z           "evidence": []
2026-06-15T13:33:59.4357378Z         },
2026-06-15T13:33:59.4357491Z         "impl": {
2026-06-15T13:33:59.4357606Z           "complete": true,
2026-06-15T13:33:59.4357731Z           "evidence": [
2026-06-15T13:33:59.4357834Z             {
2026-06-15T13:33:59.4357972Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4358100Z               "line": 152
2026-06-15T13:33:59.4358194Z             },
2026-06-15T13:33:59.4358303Z             {
2026-06-15T13:33:59.4358452Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4362682Z               "line": 167
2026-06-15T13:33:59.4362846Z             }
2026-06-15T13:33:59.4362958Z           ]
2026-06-15T13:33:59.4363059Z         },
2026-06-15T13:33:59.4363160Z         "int": {
2026-06-15T13:33:59.4363287Z           "complete": false,
2026-06-15T13:33:59.4363405Z           "evidence": []
2026-06-15T13:33:59.4363516Z         },
2026-06-15T13:33:59.4363620Z         "unit": {
2026-06-15T13:33:59.4363749Z           "complete": true,
2026-06-15T13:33:59.4363859Z           "evidence": [
2026-06-15T13:33:59.4363963Z             {
2026-06-15T13:33:59.4364127Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4364236Z               "line": 274
2026-06-15T13:33:59.4364354Z             },
2026-06-15T13:33:59.4364451Z             {
2026-06-15T13:33:59.4364616Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4364737Z               "line": 712
2026-06-15T13:33:59.4364846Z             },
2026-06-15T13:33:59.4364951Z             {
2026-06-15T13:33:59.4365105Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4365362Z               "line": 725
2026-06-15T13:33:59.4365471Z             }
2026-06-15T13:33:59.4365580Z           ]
2026-06-15T13:33:59.4365679Z         }
2026-06-15T13:33:59.4365783Z       }
2026-06-15T13:33:59.4365887Z     },
2026-06-15T13:33:59.4365987Z     {
2026-06-15T13:33:59.4366136Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T13:33:59.4366316Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T13:33:59.4366440Z       "requiredStages": [
2026-06-15T13:33:59.4366675Z         "impl",
2026-06-15T13:33:59.4366784Z         "unit"
2026-06-15T13:33:59.4366893Z       ],
2026-06-15T13:33:59.4367004Z       "stages": {
2026-06-15T13:33:59.4367108Z         "doc": {
2026-06-15T13:33:59.4367221Z           "complete": false,
2026-06-15T13:33:59.4367337Z           "evidence": []
2026-06-15T13:33:59.4367441Z         },
2026-06-15T13:33:59.4367550Z         "impl": {
2026-06-15T13:33:59.4367676Z           "complete": true,
2026-06-15T13:33:59.4367794Z           "evidence": [
2026-06-15T13:33:59.4367890Z             {
2026-06-15T13:33:59.4368037Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4368162Z               "line": 114
2026-06-15T13:33:59.4368268Z             },
2026-06-15T13:33:59.4368366Z             {
2026-06-15T13:33:59.4368532Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4368641Z               "line": 481
2026-06-15T13:33:59.4368749Z             }
2026-06-15T13:33:59.4368854Z           ]
2026-06-15T13:33:59.4369040Z         },
2026-06-15T13:33:59.4369149Z         "int": {
2026-06-15T13:33:59.4369265Z           "complete": false,
2026-06-15T13:33:59.4369393Z           "evidence": []
2026-06-15T13:33:59.4369488Z         },
2026-06-15T13:33:59.4369594Z         "unit": {
2026-06-15T13:33:59.4369712Z           "complete": true,
2026-06-15T13:33:59.4369831Z           "evidence": [
2026-06-15T13:33:59.4369942Z             {
2026-06-15T13:33:59.4370098Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4370223Z               "line": 515
2026-06-15T13:33:59.4370322Z             }
2026-06-15T13:33:59.4370427Z           ]
2026-06-15T13:33:59.4370533Z         }
2026-06-15T13:33:59.4370637Z       }
2026-06-15T13:33:59.4370742Z     },
2026-06-15T13:33:59.4370844Z     {
2026-06-15T13:33:59.4371003Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T13:33:59.4371199Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T13:33:59.4371330Z       "requiredStages": [
2026-06-15T13:33:59.4371440Z         "impl",
2026-06-15T13:33:59.4371550Z         "unit"
2026-06-15T13:33:59.4371654Z       ],
2026-06-15T13:33:59.4371759Z       "stages": {
2026-06-15T13:33:59.4371865Z         "doc": {
2026-06-15T13:33:59.4371983Z           "complete": false,
2026-06-15T13:33:59.4372103Z           "evidence": []
2026-06-15T13:33:59.4372203Z         },
2026-06-15T13:33:59.4372316Z         "impl": {
2026-06-15T13:33:59.4372442Z           "complete": true,
2026-06-15T13:33:59.4372560Z           "evidence": [
2026-06-15T13:33:59.4372670Z             {
2026-06-15T13:33:59.4372823Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4372946Z               "line": 502
2026-06-15T13:33:59.4373053Z             },
2026-06-15T13:33:59.4373157Z             {
2026-06-15T13:33:59.4373314Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4373420Z               "line": 28
2026-06-15T13:33:59.4373537Z             }
2026-06-15T13:33:59.4373629Z           ]
2026-06-15T13:33:59.4373739Z         },
2026-06-15T13:33:59.4373847Z         "int": {
2026-06-15T13:33:59.4373975Z           "complete": false,
2026-06-15T13:33:59.4374090Z           "evidence": []
2026-06-15T13:33:59.4374195Z         },
2026-06-15T13:33:59.4374314Z         "unit": {
2026-06-15T13:33:59.4374424Z           "complete": true,
2026-06-15T13:33:59.4374542Z           "evidence": [
2026-06-15T13:33:59.4374644Z             {
2026-06-15T13:33:59.4374900Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4375011Z               "line": 229
2026-06-15T13:33:59.4375110Z             }
2026-06-15T13:33:59.4375220Z           ]
2026-06-15T13:33:59.4375316Z         }
2026-06-15T13:33:59.4375420Z       }
2026-06-15T13:33:59.4375525Z     },
2026-06-15T13:33:59.4375631Z     {
2026-06-15T13:33:59.4375777Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T13:33:59.4375941Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T13:33:59.4376172Z       "requiredStages": [],
2026-06-15T13:33:59.4376282Z       "stages": {
2026-06-15T13:33:59.4376390Z         "doc": {
2026-06-15T13:33:59.4376513Z           "complete": false,
2026-06-15T13:33:59.4376633Z           "evidence": []
2026-06-15T13:33:59.4376742Z         },
2026-06-15T13:33:59.4376847Z         "impl": {
2026-06-15T13:33:59.4376967Z           "complete": false,
2026-06-15T13:33:59.4377076Z           "evidence": []
2026-06-15T13:33:59.4377176Z         },
2026-06-15T13:33:59.4377282Z         "int": {
2026-06-15T13:33:59.4377400Z           "complete": false,
2026-06-15T13:33:59.4377520Z           "evidence": []
2026-06-15T13:33:59.4377620Z         },
2026-06-15T13:33:59.4377725Z         "unit": {
2026-06-15T13:33:59.4377830Z           "complete": false,
2026-06-15T13:33:59.4377949Z           "evidence": []
2026-06-15T13:33:59.4378049Z         }
2026-06-15T13:33:59.4378159Z       }
2026-06-15T13:33:59.4378264Z     },
2026-06-15T13:33:59.4378364Z     {
2026-06-15T13:33:59.4378513Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T13:33:59.4378698Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T13:33:59.4378828Z       "requiredStages": [
2026-06-15T13:33:59.4378926Z         "impl",
2026-06-15T13:33:59.4379116Z         "unit"
2026-06-15T13:33:59.4379220Z       ],
2026-06-15T13:33:59.4379324Z       "stages": {
2026-06-15T13:33:59.4379429Z         "doc": {
2026-06-15T13:33:59.4379549Z           "complete": false,
2026-06-15T13:33:59.4379667Z           "evidence": []
2026-06-15T13:33:59.4379777Z         },
2026-06-15T13:33:59.4379892Z         "impl": {
2026-06-15T13:33:59.4380014Z           "complete": true,
2026-06-15T13:33:59.4380121Z           "evidence": [
2026-06-15T13:33:59.4380225Z             {
2026-06-15T13:33:59.4380363Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T13:33:59.4380478Z               "line": 19
2026-06-15T13:33:59.4380583Z             },
2026-06-15T13:33:59.4380687Z             {
2026-06-15T13:33:59.4380849Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.4380973Z               "line": 347
2026-06-15T13:33:59.4381075Z             },
2026-06-15T13:33:59.4381174Z             {
2026-06-15T13:33:59.4381327Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.4381437Z               "line": 383
2026-06-15T13:33:59.4381541Z             },
2026-06-15T13:33:59.4381644Z             {
2026-06-15T13:33:59.4381787Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.4381904Z               "line": 15
2026-06-15T13:33:59.4382005Z             },
2026-06-15T13:33:59.4382115Z             {
2026-06-15T13:33:59.4382257Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.4382382Z               "line": 48
2026-06-15T13:33:59.4382487Z             },
2026-06-15T13:33:59.4382591Z             {
2026-06-15T13:33:59.4382735Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.4382839Z               "line": 119
2026-06-15T13:33:59.4382959Z             },
2026-06-15T13:33:59.4383064Z             {
2026-06-15T13:33:59.4383201Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4383326Z               "line": 3504
2026-06-15T13:33:59.4383430Z             }
2026-06-15T13:33:59.4383540Z           ]
2026-06-15T13:33:59.4383646Z         },
2026-06-15T13:33:59.4383755Z         "int": {
2026-06-15T13:33:59.4383874Z           "complete": false,
2026-06-15T13:33:59.4383985Z           "evidence": []
2026-06-15T13:33:59.4384209Z         },
2026-06-15T13:33:59.4384304Z         "unit": {
2026-06-15T13:33:59.4384431Z           "complete": true,
2026-06-15T13:33:59.4384535Z           "evidence": [
2026-06-15T13:33:59.4384646Z             {
2026-06-15T13:33:59.4384793Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.4384903Z               "line": 496
2026-06-15T13:33:59.4385013Z             },
2026-06-15T13:33:59.4385117Z             {
2026-06-15T13:33:59.4385261Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.4385465Z               "line": 165
2026-06-15T13:33:59.4385576Z             },
2026-06-15T13:33:59.4385680Z             {
2026-06-15T13:33:59.4385818Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T13:33:59.4385938Z               "line": 175
2026-06-15T13:33:59.4386047Z             }
2026-06-15T13:33:59.4386158Z           ]
2026-06-15T13:33:59.4386258Z         }
2026-06-15T13:33:59.4386362Z       }
2026-06-15T13:33:59.4386467Z     },
2026-06-15T13:33:59.4386577Z     {
2026-06-15T13:33:59.4386724Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T13:33:59.4387775Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T13:33:59.4387904Z       "requiredStages": [
2026-06-15T13:33:59.4388008Z         "impl",
2026-06-15T13:33:59.4388133Z         "unit"
2026-06-15T13:33:59.4388243Z       ],
2026-06-15T13:33:59.4388347Z       "stages": {
2026-06-15T13:33:59.4388462Z         "doc": {
2026-06-15T13:33:59.4388576Z           "complete": false,
2026-06-15T13:33:59.4388695Z           "evidence": []
2026-06-15T13:33:59.4388801Z         },
2026-06-15T13:33:59.4388910Z         "impl": {
2026-06-15T13:33:59.4389092Z           "complete": true,
2026-06-15T13:33:59.4389205Z           "evidence": [
2026-06-15T13:33:59.4389315Z             {
2026-06-15T13:33:59.4389463Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4389581Z               "line": 192
2026-06-15T13:33:59.4389690Z             },
2026-06-15T13:33:59.4389799Z             {
2026-06-15T13:33:59.4389950Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4390056Z               "line": 279
2026-06-15T13:33:59.4390156Z             }
2026-06-15T13:33:59.4390255Z           ]
2026-06-15T13:33:59.4390362Z         },
2026-06-15T13:33:59.4390471Z         "int": {
2026-06-15T13:33:59.4390593Z           "complete": false,
2026-06-15T13:33:59.4390719Z           "evidence": []
2026-06-15T13:33:59.4390818Z         },
2026-06-15T13:33:59.4390933Z         "unit": {
2026-06-15T13:33:59.4391048Z           "complete": true,
2026-06-15T13:33:59.4391157Z           "evidence": [
2026-06-15T13:33:59.4391252Z             {
2026-06-15T13:33:59.4391409Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4391538Z               "line": 470
2026-06-15T13:33:59.4391635Z             },
2026-06-15T13:33:59.4391748Z             {
2026-06-15T13:33:59.4391892Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.4392011Z               "line": 526
2026-06-15T13:33:59.4392110Z             }
2026-06-15T13:33:59.4392228Z           ]
2026-06-15T13:33:59.4392338Z         }
2026-06-15T13:33:59.4392441Z       }
2026-06-15T13:33:59.4392550Z     },
2026-06-15T13:33:59.4392647Z     {
2026-06-15T13:33:59.4392779Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T13:33:59.4392976Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T13:33:59.4393099Z       "requiredStages": [
2026-06-15T13:33:59.4393204Z         "impl",
2026-06-15T13:33:59.4393309Z         "unit"
2026-06-15T13:33:59.4393418Z       ],
2026-06-15T13:33:59.4393519Z       "stages": {
2026-06-15T13:33:59.4393633Z         "doc": {
2026-06-15T13:33:59.4393752Z           "complete": false,
2026-06-15T13:33:59.4393868Z           "evidence": []
2026-06-15T13:33:59.4394090Z         },
2026-06-15T13:33:59.4394188Z         "impl": {
2026-06-15T13:33:59.4394315Z           "complete": true,
2026-06-15T13:33:59.4394424Z           "evidence": [
2026-06-15T13:33:59.4394526Z             {
2026-06-15T13:33:59.4394672Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4394793Z               "line": 35
2026-06-15T13:33:59.4394902Z             }
2026-06-15T13:33:59.4395005Z           ]
2026-06-15T13:33:59.4395110Z         },
2026-06-15T13:33:59.4395315Z         "int": {
2026-06-15T13:33:59.4395439Z           "complete": false,
2026-06-15T13:33:59.4395545Z           "evidence": []
2026-06-15T13:33:59.4395654Z         },
2026-06-15T13:33:59.4395759Z         "unit": {
2026-06-15T13:33:59.4395874Z           "complete": true,
2026-06-15T13:33:59.4395992Z           "evidence": [
2026-06-15T13:33:59.4396098Z             {
2026-06-15T13:33:59.4396250Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T13:33:59.4396374Z               "line": 220
2026-06-15T13:33:59.4396479Z             }
2026-06-15T13:33:59.4396589Z           ]
2026-06-15T13:33:59.4396689Z         }
2026-06-15T13:33:59.4396794Z       }
2026-06-15T13:33:59.4396898Z     },
2026-06-15T13:33:59.4396999Z     {
2026-06-15T13:33:59.4397133Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T13:33:59.4397436Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T13:33:59.4397562Z       "requiredStages": [
2026-06-15T13:33:59.4397667Z         "impl",
2026-06-15T13:33:59.4397773Z         "unit"
2026-06-15T13:33:59.4397877Z       ],
2026-06-15T13:33:59.4397982Z       "stages": {
2026-06-15T13:33:59.4398088Z         "doc": {
2026-06-15T13:33:59.4398215Z           "complete": false,
2026-06-15T13:33:59.4398326Z           "evidence": []
2026-06-15T13:33:59.4398421Z         },
2026-06-15T13:33:59.4398535Z         "impl": {
2026-06-15T13:33:59.4398641Z           "complete": true,
2026-06-15T13:33:59.4398759Z           "evidence": [
2026-06-15T13:33:59.4398863Z             {
2026-06-15T13:33:59.4399102Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.4399222Z               "line": 405
2026-06-15T13:33:59.4399323Z             },
2026-06-15T13:33:59.4399426Z             {
2026-06-15T13:33:59.4399575Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.4399695Z               "line": 409
2026-06-15T13:33:59.4399789Z             },
2026-06-15T13:33:59.4399900Z             {
2026-06-15T13:33:59.4400047Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.4400160Z               "line": 156
2026-06-15T13:33:59.4400270Z             }
2026-06-15T13:33:59.4400378Z           ]
2026-06-15T13:33:59.4400487Z         },
2026-06-15T13:33:59.4400587Z         "int": {
2026-06-15T13:33:59.4400707Z           "complete": false,
2026-06-15T13:33:59.4400825Z           "evidence": []
2026-06-15T13:33:59.4400927Z         },
2026-06-15T13:33:59.4401050Z         "unit": {
2026-06-15T13:33:59.4401158Z           "complete": true,
2026-06-15T13:33:59.4401279Z           "evidence": [
2026-06-15T13:33:59.4401378Z             {
2026-06-15T13:33:59.4401531Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.4401650Z               "line": 812
2026-06-15T13:33:59.4401750Z             },
2026-06-15T13:33:59.4401866Z             {
2026-06-15T13:33:59.4402017Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.4402142Z               "line": 826
2026-06-15T13:33:59.4402252Z             },
2026-06-15T13:33:59.4402360Z             {
2026-06-15T13:33:59.4402510Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.4402637Z               "line": 845
2026-06-15T13:33:59.4402745Z             },
2026-06-15T13:33:59.4402846Z             {
2026-06-15T13:33:59.4402996Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.4403120Z               "line": 862
2026-06-15T13:33:59.4403325Z             },
2026-06-15T13:33:59.4403426Z             {
2026-06-15T13:33:59.4403593Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.4403706Z               "line": 441
2026-06-15T13:33:59.4403812Z             }
2026-06-15T13:33:59.4403921Z           ]
2026-06-15T13:33:59.4404026Z         }
2026-06-15T13:33:59.4404132Z       }
2026-06-15T13:33:59.4404250Z     },
2026-06-15T13:33:59.4404350Z     {
2026-06-15T13:33:59.4404494Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T13:33:59.4406881Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T13:33:59.4407011Z       "requiredStages": [
2026-06-15T13:33:59.4407115Z         "unit",
2026-06-15T13:33:59.4407210Z         "int"
2026-06-15T13:33:59.4407316Z       ],
2026-06-15T13:33:59.4407425Z       "stages": {
2026-06-15T13:33:59.4407534Z         "doc": {
2026-06-15T13:33:59.4407660Z           "complete": true,
2026-06-15T13:33:59.4407773Z           "evidence": [
2026-06-15T13:33:59.4407877Z             {
2026-06-15T13:33:59.4408006Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4408127Z               "line": 374
2026-06-15T13:33:59.4408232Z             }
2026-06-15T13:33:59.4408338Z           ]
2026-06-15T13:33:59.4408433Z         },
2026-06-15T13:33:59.4408537Z         "impl": {
2026-06-15T13:33:59.4408676Z           "complete": true,
2026-06-15T13:33:59.4408775Z           "evidence": [
2026-06-15T13:33:59.4408881Z             {
2026-06-15T13:33:59.4409109Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4409211Z               "line": 97
2026-06-15T13:33:59.4409315Z             }
2026-06-15T13:33:59.4409424Z           ]
2026-06-15T13:33:59.4409525Z         },
2026-06-15T13:33:59.4409634Z         "int": {
2026-06-15T13:33:59.4409753Z           "complete": true,
2026-06-15T13:33:59.4409864Z           "evidence": [
2026-06-15T13:33:59.4409968Z             {
2026-06-15T13:33:59.4410130Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4410236Z               "line": 918
2026-06-15T13:33:59.4410339Z             }
2026-06-15T13:33:59.4410445Z           ]
2026-06-15T13:33:59.4410551Z         },
2026-06-15T13:33:59.4410658Z         "unit": {
2026-06-15T13:33:59.4410777Z           "complete": true,
2026-06-15T13:33:59.4410892Z           "evidence": [
2026-06-15T13:33:59.4410999Z             {
2026-06-15T13:33:59.4411161Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.4411277Z               "line": 1459
2026-06-15T13:33:59.4411385Z             }
2026-06-15T13:33:59.4411496Z           ]
2026-06-15T13:33:59.4411592Z         }
2026-06-15T13:33:59.4411700Z       }
2026-06-15T13:33:59.4411787Z     },
2026-06-15T13:33:59.4411901Z     {
2026-06-15T13:33:59.4412034Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T13:33:59.4412901Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T13:33:59.4413041Z       "requiredStages": [
2026-06-15T13:33:59.4413141Z         "doc",
2026-06-15T13:33:59.4413249Z         "impl",
2026-06-15T13:33:59.4413354Z         "unit"
2026-06-15T13:33:59.4413463Z       ],
2026-06-15T13:33:59.4413666Z       "stages": {
2026-06-15T13:33:59.4413776Z         "doc": {
2026-06-15T13:33:59.4413895Z           "complete": true,
2026-06-15T13:33:59.4414009Z           "evidence": [
2026-06-15T13:33:59.4414115Z             {
2026-06-15T13:33:59.4414252Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T13:33:59.4414373Z               "line": 359
2026-06-15T13:33:59.4414473Z             }
2026-06-15T13:33:59.4414572Z           ]
2026-06-15T13:33:59.4414678Z         },
2026-06-15T13:33:59.4414787Z         "impl": {
2026-06-15T13:33:59.4415007Z           "complete": true,
2026-06-15T13:33:59.4415126Z           "evidence": [
2026-06-15T13:33:59.4415225Z             {
2026-06-15T13:33:59.4415383Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.4415492Z               "line": 87
2026-06-15T13:33:59.4415598Z             },
2026-06-15T13:33:59.4415702Z             {
2026-06-15T13:33:59.4415860Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.4415980Z               "line": 105
2026-06-15T13:33:59.4416092Z             },
2026-06-15T13:33:59.4416206Z             {
2026-06-15T13:33:59.4416360Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4416478Z               "line": 55
2026-06-15T13:33:59.4416584Z             },
2026-06-15T13:33:59.4416698Z             {
2026-06-15T13:33:59.4416845Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.4416970Z               "line": 31
2026-06-15T13:33:59.4417079Z             },
2026-06-15T13:33:59.4417189Z             {
2026-06-15T13:33:59.4417342Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.4417460Z               "line": 292
2026-06-15T13:33:59.4417562Z             },
2026-06-15T13:33:59.4417656Z             {
2026-06-15T13:33:59.4417799Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4417924Z               "line": 95
2026-06-15T13:33:59.4418027Z             },
2026-06-15T13:33:59.4418133Z             {
2026-06-15T13:33:59.4418290Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.4418408Z               "line": 29
2026-06-15T13:33:59.4418509Z             },
2026-06-15T13:33:59.4418608Z             {
2026-06-15T13:33:59.4418754Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.4418859Z               "line": 104
2026-06-15T13:33:59.4419030Z             },
2026-06-15T13:33:59.4419126Z             {
2026-06-15T13:33:59.4419293Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4419417Z               "line": 208
2026-06-15T13:33:59.4419528Z             },
2026-06-15T13:33:59.4419631Z             {
2026-06-15T13:33:59.4419776Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:33:59.4419894Z               "line": 28
2026-06-15T13:33:59.4419994Z             },
2026-06-15T13:33:59.4420090Z             {
2026-06-15T13:33:59.4420242Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:33:59.4420366Z               "line": 74
2026-06-15T13:33:59.4420477Z             },
2026-06-15T13:33:59.4420575Z             {
2026-06-15T13:33:59.4420739Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.4420838Z               "line": 32
2026-06-15T13:33:59.4420943Z             },
2026-06-15T13:33:59.4421034Z             {
2026-06-15T13:33:59.4421181Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4421304Z               "line": 40
2026-06-15T13:33:59.4421414Z             },
2026-06-15T13:33:59.4421522Z             {
2026-06-15T13:33:59.4421664Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4421789Z               "line": 184
2026-06-15T13:33:59.4421902Z             },
2026-06-15T13:33:59.4421998Z             {
2026-06-15T13:33:59.4422147Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4422245Z               "line": 61
2026-06-15T13:33:59.4422356Z             },
2026-06-15T13:33:59.4422565Z             {
2026-06-15T13:33:59.4422709Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4422824Z               "line": 131
2026-06-15T13:33:59.4422923Z             },
2026-06-15T13:33:59.4423029Z             {
2026-06-15T13:33:59.4423171Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.4423291Z               "line": 223
2026-06-15T13:33:59.4423386Z             },
2026-06-15T13:33:59.4423495Z             {
2026-06-15T13:33:59.4423649Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:33:59.4423852Z               "line": 37
2026-06-15T13:33:59.4423957Z             },
2026-06-15T13:33:59.4424060Z             {
2026-06-15T13:33:59.4424221Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.4424336Z               "line": 38
2026-06-15T13:33:59.4424445Z             },
2026-06-15T13:33:59.4424550Z             {
2026-06-15T13:33:59.4424699Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4424812Z               "line": 36
2026-06-15T13:33:59.4424919Z             },
2026-06-15T13:33:59.4425028Z             {
2026-06-15T13:33:59.4425175Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:33:59.4425290Z               "line": 40
2026-06-15T13:33:59.4425399Z             }
2026-06-15T13:33:59.4425504Z           ]
2026-06-15T13:33:59.4425614Z         },
2026-06-15T13:33:59.4425723Z         "int": {
2026-06-15T13:33:59.4425839Z           "complete": false,
2026-06-15T13:33:59.4425962Z           "evidence": []
2026-06-15T13:33:59.4426076Z         },
2026-06-15T13:33:59.4426187Z         "unit": {
2026-06-15T13:33:59.4426304Z           "complete": true,
2026-06-15T13:33:59.4426425Z           "evidence": [
2026-06-15T13:33:59.4426531Z             {
2026-06-15T13:33:59.4426691Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4426805Z               "line": 212
2026-06-15T13:33:59.4426916Z             },
2026-06-15T13:33:59.4427019Z             {
2026-06-15T13:33:59.4427187Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T13:33:59.4427301Z               "line": 136
2026-06-15T13:33:59.4427410Z             },
2026-06-15T13:33:59.4427516Z             {
2026-06-15T13:33:59.4427672Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.4427793Z               "line": 685
2026-06-15T13:33:59.4427892Z             },
2026-06-15T13:33:59.4427997Z             {
2026-06-15T13:33:59.4428150Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4428269Z               "line": 224
2026-06-15T13:33:59.4428369Z             },
2026-06-15T13:33:59.4428474Z             {
2026-06-15T13:33:59.4428621Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:33:59.4428742Z               "line": 206
2026-06-15T13:33:59.4428845Z             },
2026-06-15T13:33:59.4429016Z             {
2026-06-15T13:33:59.4429158Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.4429285Z               "line": 112
2026-06-15T13:33:59.4429391Z             },
2026-06-15T13:33:59.4429506Z             {
2026-06-15T13:33:59.4429653Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:33:59.4429763Z               "line": 157
2026-06-15T13:33:59.4429872Z             },
2026-06-15T13:33:59.4429982Z             {
2026-06-15T13:33:59.4430135Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.4430253Z               "line": 215
2026-06-15T13:33:59.4430355Z             },
2026-06-15T13:33:59.4430464Z             {
2026-06-15T13:33:59.4430611Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4430731Z               "line": 141
2026-06-15T13:33:59.4430835Z             },
2026-06-15T13:33:59.4430941Z             {
2026-06-15T13:33:59.4431098Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:33:59.4431207Z               "line": 162
2026-06-15T13:33:59.4431314Z             }
2026-06-15T13:33:59.4431527Z           ]
2026-06-15T13:33:59.4431629Z         }
2026-06-15T13:33:59.4431732Z       }
2026-06-15T13:33:59.4431831Z     },
2026-06-15T13:33:59.4431946Z     {
2026-06-15T13:33:59.4432096Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T13:33:59.4432296Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T13:33:59.4432415Z       "requiredStages": [
2026-06-15T13:33:59.4432520Z         "impl",
2026-06-15T13:33:59.4432626Z         "unit"
2026-06-15T13:33:59.4432735Z       ],
2026-06-15T13:33:59.4432955Z       "stages": {
2026-06-15T13:33:59.4433059Z         "doc": {
2026-06-15T13:33:59.4433197Z           "complete": false,
2026-06-15T13:33:59.4433317Z           "evidence": []
2026-06-15T13:33:59.4433421Z         },
2026-06-15T13:33:59.4433527Z         "impl": {
2026-06-15T13:33:59.4433655Z           "complete": true,
2026-06-15T13:33:59.4433774Z           "evidence": [
2026-06-15T13:33:59.4433880Z             {
2026-06-15T13:33:59.4434021Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4434132Z               "line": 95
2026-06-15T13:33:59.4434238Z             },
2026-06-15T13:33:59.4434341Z             {
2026-06-15T13:33:59.4434493Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4434611Z               "line": 102
2026-06-15T13:33:59.4434719Z             }
2026-06-15T13:33:59.4434825Z           ]
2026-06-15T13:33:59.4434931Z         },
2026-06-15T13:33:59.4435043Z         "int": {
2026-06-15T13:33:59.4435164Z           "complete": false,
2026-06-15T13:33:59.4435288Z           "evidence": []
2026-06-15T13:33:59.4435397Z         },
2026-06-15T13:33:59.4435503Z         "unit": {
2026-06-15T13:33:59.4435621Z           "complete": true,
2026-06-15T13:33:59.4435725Z           "evidence": [
2026-06-15T13:33:59.4435836Z             {
2026-06-15T13:33:59.4435973Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4436094Z               "line": 250
2026-06-15T13:33:59.4436212Z             },
2026-06-15T13:33:59.4436321Z             {
2026-06-15T13:33:59.4436466Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T13:33:59.4436584Z               "line": 198
2026-06-15T13:33:59.4436694Z             },
2026-06-15T13:33:59.4436795Z             {
2026-06-15T13:33:59.4436941Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4437067Z               "line": 489
2026-06-15T13:33:59.4437171Z             },
2026-06-15T13:33:59.4437284Z             {
2026-06-15T13:33:59.4437423Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4437546Z               "line": 522
2026-06-15T13:33:59.4437646Z             }
2026-06-15T13:33:59.4437747Z           ]
2026-06-15T13:33:59.4437856Z         }
2026-06-15T13:33:59.4437956Z       }
2026-06-15T13:33:59.4438067Z     },
2026-06-15T13:33:59.4438166Z     {
2026-06-15T13:33:59.4438300Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T13:33:59.4438519Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T13:33:59.4438653Z       "requiredStages": [
2026-06-15T13:33:59.4438762Z         "impl",
2026-06-15T13:33:59.4438862Z         "unit"
2026-06-15T13:33:59.4439091Z       ],
2026-06-15T13:33:59.4439196Z       "stages": {
2026-06-15T13:33:59.4439302Z         "doc": {
2026-06-15T13:33:59.4439419Z           "complete": false,
2026-06-15T13:33:59.4439533Z           "evidence": []
2026-06-15T13:33:59.4439648Z         },
2026-06-15T13:33:59.4439751Z         "impl": {
2026-06-15T13:33:59.4439869Z           "complete": true,
2026-06-15T13:33:59.4439984Z           "evidence": [
2026-06-15T13:33:59.4440089Z             {
2026-06-15T13:33:59.4440232Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4440352Z               "line": 262
2026-06-15T13:33:59.4440461Z             },
2026-06-15T13:33:59.4440561Z             {
2026-06-15T13:33:59.4440709Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4440823Z               "line": 307
2026-06-15T13:33:59.4440929Z             },
2026-06-15T13:33:59.4441157Z             {
2026-06-15T13:33:59.4441300Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4441419Z               "line": 319
2026-06-15T13:33:59.4441525Z             }
2026-06-15T13:33:59.4441625Z           ]
2026-06-15T13:33:59.4441730Z         },
2026-06-15T13:33:59.4441840Z         "int": {
2026-06-15T13:33:59.4441949Z           "complete": false,
2026-06-15T13:33:59.4442073Z           "evidence": []
2026-06-15T13:33:59.4442169Z         },
2026-06-15T13:33:59.4442381Z         "unit": {
2026-06-15T13:33:59.4442496Z           "complete": true,
2026-06-15T13:33:59.4442604Z           "evidence": [
2026-06-15T13:33:59.4442717Z             {
2026-06-15T13:33:59.4442861Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4442980Z               "line": 455
2026-06-15T13:33:59.4443094Z             },
2026-06-15T13:33:59.4443200Z             {
2026-06-15T13:33:59.4443347Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4443463Z               "line": 499
2026-06-15T13:33:59.4443572Z             }
2026-06-15T13:33:59.4443676Z           ]
2026-06-15T13:33:59.4443777Z         }
2026-06-15T13:33:59.4443886Z       }
2026-06-15T13:33:59.4443991Z     },
2026-06-15T13:33:59.4444097Z     {
2026-06-15T13:33:59.4444215Z       "id": "REQ-HOST-RUN-1",
2026-06-15T13:33:59.4446853Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T13:33:59.4447007Z       "requiredStages": [
2026-06-15T13:33:59.4447120Z         "impl",
2026-06-15T13:33:59.4447225Z         "unit",
2026-06-15T13:33:59.4451255Z         "int"
2026-06-15T13:33:59.4451397Z       ],
2026-06-15T13:33:59.4451527Z       "stages": {
2026-06-15T13:33:59.4451631Z         "doc": {
2026-06-15T13:33:59.4451756Z           "complete": false,
2026-06-15T13:33:59.4451879Z           "evidence": []
2026-06-15T13:33:59.4452003Z         },
2026-06-15T13:33:59.4452119Z         "impl": {
2026-06-15T13:33:59.4452241Z           "complete": true,
2026-06-15T13:33:59.4452366Z           "evidence": [
2026-06-15T13:33:59.4452467Z             {
2026-06-15T13:33:59.4452652Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4452773Z               "line": 24
2026-06-15T13:33:59.4452880Z             },
2026-06-15T13:33:59.4452984Z             {
2026-06-15T13:33:59.4453164Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4453278Z               "line": 63
2026-06-15T13:33:59.4453383Z             },
2026-06-15T13:33:59.4453488Z             {
2026-06-15T13:33:59.4453650Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4453755Z               "line": 109
2026-06-15T13:33:59.4453864Z             },
2026-06-15T13:33:59.4453969Z             {
2026-06-15T13:33:59.4454118Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4454236Z               "line": 1159
2026-06-15T13:33:59.4454337Z             }
2026-06-15T13:33:59.4454441Z           ]
2026-06-15T13:33:59.4454537Z         },
2026-06-15T13:33:59.4454642Z         "int": {
2026-06-15T13:33:59.4454766Z           "complete": true,
2026-06-15T13:33:59.4454889Z           "evidence": [
2026-06-15T13:33:59.4454991Z             {
2026-06-15T13:33:59.4455151Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4455433Z               "line": 279
2026-06-15T13:33:59.4455541Z             }
2026-06-15T13:33:59.4455651Z           ]
2026-06-15T13:33:59.4455755Z         },
2026-06-15T13:33:59.4455858Z         "unit": {
2026-06-15T13:33:59.4455973Z           "complete": true,
2026-06-15T13:33:59.4456093Z           "evidence": [
2026-06-15T13:33:59.4456202Z             {
2026-06-15T13:33:59.4456365Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4456483Z               "line": 149
2026-06-15T13:33:59.4456684Z             },
2026-06-15T13:33:59.4456793Z             {
2026-06-15T13:33:59.4456956Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4457075Z               "line": 169
2026-06-15T13:33:59.4457180Z             },
2026-06-15T13:33:59.4457285Z             {
2026-06-15T13:33:59.4457451Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4457557Z               "line": 202
2026-06-15T13:33:59.4457666Z             }
2026-06-15T13:33:59.4457776Z           ]
2026-06-15T13:33:59.4457887Z         }
2026-06-15T13:33:59.4457995Z       }
2026-06-15T13:33:59.4458095Z     },
2026-06-15T13:33:59.4458196Z     {
2026-06-15T13:33:59.4458319Z       "id": "REQ-HOST-RUN-2",
2026-06-15T13:33:59.4460244Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T13:33:59.4460378Z       "requiredStages": [
2026-06-15T13:33:59.4460489Z         "impl",
2026-06-15T13:33:59.4460601Z         "unit",
2026-06-15T13:33:59.4460706Z         "int"
2026-06-15T13:33:59.4460816Z       ],
2026-06-15T13:33:59.4460923Z       "stages": {
2026-06-15T13:33:59.4461018Z         "doc": {
2026-06-15T13:33:59.4461148Z           "complete": false,
2026-06-15T13:33:59.4461261Z           "evidence": []
2026-06-15T13:33:59.4461367Z         },
2026-06-15T13:33:59.4461472Z         "impl": {
2026-06-15T13:33:59.4461600Z           "complete": true,
2026-06-15T13:33:59.4461730Z           "evidence": [
2026-06-15T13:33:59.4461835Z             {
2026-06-15T13:33:59.4462006Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T13:33:59.4462115Z               "line": 110
2026-06-15T13:33:59.4462224Z             },
2026-06-15T13:33:59.4462326Z             {
2026-06-15T13:33:59.4462473Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:33:59.4462583Z               "line": 113
2026-06-15T13:33:59.4462684Z             }
2026-06-15T13:33:59.4462806Z           ]
2026-06-15T13:33:59.4462912Z         },
2026-06-15T13:33:59.4463023Z         "int": {
2026-06-15T13:33:59.4463126Z           "complete": true,
2026-06-15T13:33:59.4463246Z           "evidence": [
2026-06-15T13:33:59.4463352Z             {
2026-06-15T13:33:59.4463502Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4463621Z               "line": 454
2026-06-15T13:33:59.4463720Z             }
2026-06-15T13:33:59.4463824Z           ]
2026-06-15T13:33:59.4463928Z         },
2026-06-15T13:33:59.4464039Z         "unit": {
2026-06-15T13:33:59.4464162Z           "complete": true,
2026-06-15T13:33:59.4464278Z           "evidence": [
2026-06-15T13:33:59.4464387Z             {
2026-06-15T13:33:59.4464534Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:33:59.4464654Z               "line": 86
2026-06-15T13:33:59.4464758Z             }
2026-06-15T13:33:59.4464873Z           ]
2026-06-15T13:33:59.4464969Z         }
2026-06-15T13:33:59.4465173Z       }
2026-06-15T13:33:59.4465283Z     },
2026-06-15T13:33:59.4465383Z     {
2026-06-15T13:33:59.4465503Z       "id": "REQ-INFRA-1",
2026-06-15T13:33:59.4465721Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T13:33:59.4465842Z       "requiredStages": [],
2026-06-15T13:33:59.4465946Z       "stages": {
2026-06-15T13:33:59.4466054Z         "doc": {
2026-06-15T13:33:59.4466178Z           "complete": false,
2026-06-15T13:33:59.4466282Z           "evidence": []
2026-06-15T13:33:59.4466495Z         },
2026-06-15T13:33:59.4466601Z         "impl": {
2026-06-15T13:33:59.4466724Z           "complete": false,
2026-06-15T13:33:59.4466844Z           "evidence": []
2026-06-15T13:33:59.4466954Z         },
2026-06-15T13:33:59.4467062Z         "int": {
2026-06-15T13:33:59.4467187Z           "complete": false,
2026-06-15T13:33:59.4467311Z           "evidence": []
2026-06-15T13:33:59.4467411Z         },
2026-06-15T13:33:59.4467526Z         "unit": {
2026-06-15T13:33:59.4467659Z           "complete": false,
2026-06-15T13:33:59.4467764Z           "evidence": []
2026-06-15T13:33:59.4467869Z         }
2026-06-15T13:33:59.4467974Z       }
2026-06-15T13:33:59.4468074Z     },
2026-06-15T13:33:59.4468179Z     {
2026-06-15T13:33:59.4468303Z       "id": "REQ-INST-1",
2026-06-15T13:33:59.4468494Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T13:33:59.4468613Z       "requiredStages": [],
2026-06-15T13:33:59.4468719Z       "stages": {
2026-06-15T13:33:59.4468828Z         "doc": {
2026-06-15T13:33:59.4469040Z           "complete": false,
2026-06-15T13:33:59.4469151Z           "evidence": []
2026-06-15T13:33:59.4469259Z         },
2026-06-15T13:33:59.4469375Z         "impl": {
2026-06-15T13:33:59.4469494Z           "complete": false,
2026-06-15T13:33:59.4469607Z           "evidence": []
2026-06-15T13:33:59.4469704Z         },
2026-06-15T13:33:59.4469818Z         "int": {
2026-06-15T13:33:59.4469936Z           "complete": false,
2026-06-15T13:33:59.4470052Z           "evidence": []
2026-06-15T13:33:59.4470166Z         },
2026-06-15T13:33:59.4470275Z         "unit": {
2026-06-15T13:33:59.4470400Z           "complete": false,
2026-06-15T13:33:59.4470510Z           "evidence": []
2026-06-15T13:33:59.4470614Z         }
2026-06-15T13:33:59.4470715Z       }
2026-06-15T13:33:59.4470823Z     },
2026-06-15T13:33:59.4470925Z     {
2026-06-15T13:33:59.4471044Z       "id": "REQ-INST-10",
2026-06-15T13:33:59.4471295Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T13:33:59.4471422Z       "requiredStages": [
2026-06-15T13:33:59.4471531Z         "impl",
2026-06-15T13:33:59.4471631Z         "unit"
2026-06-15T13:33:59.4471737Z       ],
2026-06-15T13:33:59.4471850Z       "stages": {
2026-06-15T13:33:59.4471955Z         "doc": {
2026-06-15T13:33:59.4472080Z           "complete": false,
2026-06-15T13:33:59.4472194Z           "evidence": []
2026-06-15T13:33:59.4472300Z         },
2026-06-15T13:33:59.4472404Z         "impl": {
2026-06-15T13:33:59.4472527Z           "complete": true,
2026-06-15T13:33:59.4472648Z           "evidence": [
2026-06-15T13:33:59.4472752Z             {
2026-06-15T13:33:59.4472919Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4473023Z               "line": 616
2026-06-15T13:33:59.4473128Z             },
2026-06-15T13:33:59.4473230Z             {
2026-06-15T13:33:59.4473391Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4473506Z               "line": 693
2026-06-15T13:33:59.4473606Z             },
2026-06-15T13:33:59.4473715Z             {
2026-06-15T13:33:59.4473854Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4473977Z               "line": 13
2026-06-15T13:33:59.4474081Z             },
2026-06-15T13:33:59.4474186Z             {
2026-06-15T13:33:59.4474336Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4474440Z               "line": 67
2026-06-15T13:33:59.4474547Z             },
2026-06-15T13:33:59.4474750Z             {
2026-06-15T13:33:59.4474895Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4474998Z               "line": 18
2026-06-15T13:33:59.4475099Z             },
2026-06-15T13:33:59.4475209Z             {
2026-06-15T13:33:59.4475347Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4475457Z               "line": 444
2026-06-15T13:33:59.4475557Z             }
2026-06-15T13:33:59.4475662Z           ]
2026-06-15T13:33:59.4475767Z         },
2026-06-15T13:33:59.4475981Z         "int": {
2026-06-15T13:33:59.4476106Z           "complete": false,
2026-06-15T13:33:59.4476215Z           "evidence": []
2026-06-15T13:33:59.4476330Z         },
2026-06-15T13:33:59.4476436Z         "unit": {
2026-06-15T13:33:59.4476558Z           "complete": true,
2026-06-15T13:33:59.4476666Z           "evidence": [
2026-06-15T13:33:59.4476786Z             {
2026-06-15T13:33:59.4476932Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4477046Z               "line": 900
2026-06-15T13:33:59.4477157Z             },
2026-06-15T13:33:59.4477260Z             {
2026-06-15T13:33:59.4477404Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4477519Z               "line": 1233
2026-06-15T13:33:59.4477617Z             },
2026-06-15T13:33:59.4477729Z             {
2026-06-15T13:33:59.4477876Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4478000Z               "line": 1244
2026-06-15T13:33:59.4478100Z             },
2026-06-15T13:33:59.4478209Z             {
2026-06-15T13:33:59.4478359Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4478477Z               "line": 1260
2026-06-15T13:33:59.4478586Z             },
2026-06-15T13:33:59.4478683Z             {
2026-06-15T13:33:59.4478834Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4479002Z               "line": 1276
2026-06-15T13:33:59.4479115Z             },
2026-06-15T13:33:59.4479225Z             {
2026-06-15T13:33:59.4479374Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4479486Z               "line": 1298
2026-06-15T13:33:59.4479591Z             },
2026-06-15T13:33:59.4479702Z             {
2026-06-15T13:33:59.4479853Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4479968Z               "line": 1603
2026-06-15T13:33:59.4480078Z             },
2026-06-15T13:33:59.4480182Z             {
2026-06-15T13:33:59.4480331Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4480449Z               "line": 130
2026-06-15T13:33:59.4480559Z             },
2026-06-15T13:33:59.4480665Z             {
2026-06-15T13:33:59.4480811Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4480927Z               "line": 167
2026-06-15T13:33:59.4481031Z             },
2026-06-15T13:33:59.4481140Z             {
2026-06-15T13:33:59.4481275Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4481398Z               "line": 175
2026-06-15T13:33:59.4481504Z             },
2026-06-15T13:33:59.4481609Z             {
2026-06-15T13:33:59.4481750Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T13:33:59.4481865Z               "line": 183
2026-06-15T13:33:59.4481969Z             },
2026-06-15T13:33:59.4482072Z             {
2026-06-15T13:33:59.4482215Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4482325Z               "line": 896
2026-06-15T13:33:59.4482434Z             }
2026-06-15T13:33:59.4482550Z           ]
2026-06-15T13:33:59.4482649Z         }
2026-06-15T13:33:59.4482763Z       }
2026-06-15T13:33:59.4482865Z     },
2026-06-15T13:33:59.4482974Z     {
2026-06-15T13:33:59.4483083Z       "id": "REQ-INST-11",
2026-06-15T13:33:59.4483340Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T13:33:59.4483460Z       "requiredStages": [
2026-06-15T13:33:59.4483569Z         "impl",
2026-06-15T13:33:59.4483799Z         "unit"
2026-06-15T13:33:59.4483903Z       ],
2026-06-15T13:33:59.4484017Z       "stages": {
2026-06-15T13:33:59.4484124Z         "doc": {
2026-06-15T13:33:59.4484246Z           "complete": false,
2026-06-15T13:33:59.4484366Z           "evidence": []
2026-06-15T13:33:59.4484472Z         },
2026-06-15T13:33:59.4484575Z         "impl": {
2026-06-15T13:33:59.4484688Z           "complete": true,
2026-06-15T13:33:59.4484803Z           "evidence": [
2026-06-15T13:33:59.4484901Z             {
2026-06-15T13:33:59.4485159Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4485277Z               "line": 482
2026-06-15T13:33:59.4485373Z             },
2026-06-15T13:33:59.4485473Z             {
2026-06-15T13:33:59.4485626Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4485737Z               "line": 297
2026-06-15T13:33:59.4485841Z             },
2026-06-15T13:33:59.4485950Z             {
2026-06-15T13:33:59.4486098Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:33:59.4486212Z               "line": 59
2026-06-15T13:33:59.4486323Z             },
2026-06-15T13:33:59.4486436Z             {
2026-06-15T13:33:59.4486585Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4486700Z               "line": 4732
2026-06-15T13:33:59.4486808Z             },
2026-06-15T13:33:59.4486913Z             {
2026-06-15T13:33:59.4487048Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4487165Z               "line": 6134
2026-06-15T13:33:59.4487270Z             }
2026-06-15T13:33:59.4487370Z           ]
2026-06-15T13:33:59.4487473Z         },
2026-06-15T13:33:59.4487577Z         "int": {
2026-06-15T13:33:59.4487702Z           "complete": false,
2026-06-15T13:33:59.4487811Z           "evidence": []
2026-06-15T13:33:59.4487916Z         },
2026-06-15T13:33:59.4488022Z         "unit": {
2026-06-15T13:33:59.4488145Z           "complete": true,
2026-06-15T13:33:59.4488255Z           "evidence": [
2026-06-15T13:33:59.4488374Z             {
2026-06-15T13:33:59.4488531Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4488636Z               "line": 1403
2026-06-15T13:33:59.4488741Z             },
2026-06-15T13:33:59.4488841Z             {
2026-06-15T13:33:59.4489075Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4489190Z               "line": 1436
2026-06-15T13:33:59.4489299Z             },
2026-06-15T13:33:59.4489399Z             {
2026-06-15T13:33:59.4489563Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4489689Z               "line": 527
2026-06-15T13:33:59.4489790Z             },
2026-06-15T13:33:59.4489892Z             {
2026-06-15T13:33:59.4490037Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:33:59.4490137Z               "line": 160
2026-06-15T13:33:59.4490252Z             },
2026-06-15T13:33:59.4490357Z             {
2026-06-15T13:33:59.4490505Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:33:59.4490614Z               "line": 190
2026-06-15T13:33:59.4490714Z             },
2026-06-15T13:33:59.4490820Z             {
2026-06-15T13:33:59.4490967Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T13:33:59.4491086Z               "line": 225
2026-06-15T13:33:59.4491191Z             },
2026-06-15T13:33:59.4491301Z             {
2026-06-15T13:33:59.4491434Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4491549Z               "line": 6523
2026-06-15T13:33:59.4491658Z             }
2026-06-15T13:33:59.4491759Z           ]
2026-06-15T13:33:59.4491869Z         }
2026-06-15T13:33:59.4491968Z       }
2026-06-15T13:33:59.4492073Z     },
2026-06-15T13:33:59.4492178Z     {
2026-06-15T13:33:59.4492310Z       "id": "REQ-INST-12",
2026-06-15T13:33:59.4492651Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T13:33:59.4492770Z       "requiredStages": [
2026-06-15T13:33:59.4492985Z         "impl",
2026-06-15T13:33:59.4493090Z         "unit"
2026-06-15T13:33:59.4493200Z       ],
2026-06-15T13:33:59.4493304Z       "stages": {
2026-06-15T13:33:59.4493420Z         "doc": {
2026-06-15T13:33:59.4493543Z           "complete": false,
2026-06-15T13:33:59.4493662Z           "evidence": []
2026-06-15T13:33:59.4493758Z         },
2026-06-15T13:33:59.4493867Z         "impl": {
2026-06-15T13:33:59.4493991Z           "complete": true,
2026-06-15T13:33:59.4494101Z           "evidence": [
2026-06-15T13:33:59.4494306Z             {
2026-06-15T13:33:59.4494459Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4494563Z               "line": 534
2026-06-15T13:33:59.4494674Z             },
2026-06-15T13:33:59.4494773Z             {
2026-06-15T13:33:59.4494931Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4495032Z               "line": 627
2026-06-15T13:33:59.4495135Z             },
2026-06-15T13:33:59.4495239Z             {
2026-06-15T13:33:59.4495391Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4495508Z               "line": 707
2026-06-15T13:33:59.4495609Z             },
2026-06-15T13:33:59.4495714Z             {
2026-06-15T13:33:59.4495842Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4495958Z               "line": 96
2026-06-15T13:33:59.4496058Z             },
2026-06-15T13:33:59.4496162Z             {
2026-06-15T13:33:59.4496316Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4496439Z               "line": 269
2026-06-15T13:33:59.4496544Z             },
2026-06-15T13:33:59.4496649Z             {
2026-06-15T13:33:59.4496806Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4496926Z               "line": 135
2026-06-15T13:33:59.4497030Z             }
2026-06-15T13:33:59.4497135Z           ]
2026-06-15T13:33:59.4497226Z         },
2026-06-15T13:33:59.4497340Z         "int": {
2026-06-15T13:33:59.4497454Z           "complete": false,
2026-06-15T13:33:59.4497585Z           "evidence": []
2026-06-15T13:33:59.4497692Z         },
2026-06-15T13:33:59.4497796Z         "unit": {
2026-06-15T13:33:59.4497906Z           "complete": true,
2026-06-15T13:33:59.4498018Z           "evidence": [
2026-06-15T13:33:59.4498127Z             {
2026-06-15T13:33:59.4498282Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4498400Z               "line": 1478
2026-06-15T13:33:59.4498505Z             },
2026-06-15T13:33:59.4498610Z             {
2026-06-15T13:33:59.4498752Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4498868Z               "line": 1501
2026-06-15T13:33:59.4499038Z             },
2026-06-15T13:33:59.4499135Z             {
2026-06-15T13:33:59.4499287Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4499410Z               "line": 1538
2026-06-15T13:33:59.4499512Z             },
2026-06-15T13:33:59.4499616Z             {
2026-06-15T13:33:59.4499760Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4499882Z               "line": 457
2026-06-15T13:33:59.4499987Z             },
2026-06-15T13:33:59.4500084Z             {
2026-06-15T13:33:59.4500230Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4500341Z               "line": 172
2026-06-15T13:33:59.4500442Z             },
2026-06-15T13:33:59.4500545Z             {
2026-06-15T13:33:59.4500692Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4500817Z               "line": 193
2026-06-15T13:33:59.4500921Z             },
2026-06-15T13:33:59.4501021Z             {
2026-06-15T13:33:59.4501170Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4501288Z               "line": 219
2026-06-15T13:33:59.4501385Z             }
2026-06-15T13:33:59.4501494Z           ]
2026-06-15T13:33:59.4501598Z         }
2026-06-15T13:33:59.4501689Z       }
2026-06-15T13:33:59.4501794Z     },
2026-06-15T13:33:59.4501995Z     {
2026-06-15T13:33:59.4502118Z       "id": "REQ-INST-13",
2026-06-15T13:33:59.4502339Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T13:33:59.4502461Z       "requiredStages": [
2026-06-15T13:33:59.4502576Z         "impl",
2026-06-15T13:33:59.4502678Z         "unit"
2026-06-15T13:33:59.4502785Z       ],
2026-06-15T13:33:59.4502894Z       "stages": {
2026-06-15T13:33:59.4503004Z         "doc": {
2026-06-15T13:33:59.4503126Z           "complete": false,
2026-06-15T13:33:59.4503345Z           "evidence": []
2026-06-15T13:33:59.4503450Z         },
2026-06-15T13:33:59.4503559Z         "impl": {
2026-06-15T13:33:59.4503684Z           "complete": true,
2026-06-15T13:33:59.4503789Z           "evidence": [
2026-06-15T13:33:59.4503893Z             {
2026-06-15T13:33:59.4504037Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4504155Z               "line": 100
2026-06-15T13:33:59.4504262Z             },
2026-06-15T13:33:59.4504371Z             {
2026-06-15T13:33:59.4504528Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4504633Z               "line": 158
2026-06-15T13:33:59.4504742Z             }
2026-06-15T13:33:59.4504847Z           ]
2026-06-15T13:33:59.4504953Z         },
2026-06-15T13:33:59.4505061Z         "int": {
2026-06-15T13:33:59.4505177Z           "complete": false,
2026-06-15T13:33:59.4505291Z           "evidence": []
2026-06-15T13:33:59.4505400Z         },
2026-06-15T13:33:59.4505501Z         "unit": {
2026-06-15T13:33:59.4505625Z           "complete": true,
2026-06-15T13:33:59.4505733Z           "evidence": [
2026-06-15T13:33:59.4505838Z             {
2026-06-15T13:33:59.4505979Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4506097Z               "line": 248
2026-06-15T13:33:59.4506202Z             },
2026-06-15T13:33:59.4506308Z             {
2026-06-15T13:33:59.4506455Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T13:33:59.4506575Z               "line": 266
2026-06-15T13:33:59.4506670Z             }
2026-06-15T13:33:59.4506765Z           ]
2026-06-15T13:33:59.4506871Z         }
2026-06-15T13:33:59.4506966Z       }
2026-06-15T13:33:59.4507070Z     },
2026-06-15T13:33:59.4507171Z     {
2026-06-15T13:33:59.4507280Z       "id": "REQ-INST-14",
2026-06-15T13:33:59.4507700Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T13:33:59.4507820Z       "requiredStages": [
2026-06-15T13:33:59.4507937Z         "doc",
2026-06-15T13:33:59.4508034Z         "impl",
2026-06-15T13:33:59.4508145Z         "unit"
2026-06-15T13:33:59.4508247Z       ],
2026-06-15T13:33:59.4508361Z       "stages": {
2026-06-15T13:33:59.4508462Z         "doc": {
2026-06-15T13:33:59.4508574Z           "complete": true,
2026-06-15T13:33:59.4508687Z           "evidence": [
2026-06-15T13:33:59.4508784Z             {
2026-06-15T13:33:59.4508912Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4509090Z               "line": 532
2026-06-15T13:33:59.4509208Z             },
2026-06-15T13:33:59.4509313Z             {
2026-06-15T13:33:59.4509442Z               "path": "docs/STORAGE.md",
2026-06-15T13:33:59.4509551Z               "line": 49
2026-06-15T13:33:59.4509646Z             }
2026-06-15T13:33:59.4509753Z           ]
2026-06-15T13:33:59.4509857Z         },
2026-06-15T13:33:59.4509970Z         "impl": {
2026-06-15T13:33:59.4510086Z           "complete": true,
2026-06-15T13:33:59.4510200Z           "evidence": [
2026-06-15T13:33:59.4510300Z             {
2026-06-15T13:33:59.4510462Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4510581Z               "line": 404
2026-06-15T13:33:59.4510688Z             },
2026-06-15T13:33:59.4510790Z             {
2026-06-15T13:33:59.4510950Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4511064Z               "line": 346
2026-06-15T13:33:59.4511162Z             },
2026-06-15T13:33:59.4511372Z             {
2026-06-15T13:33:59.4511515Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4511625Z               "line": 221
2026-06-15T13:33:59.4511735Z             },
2026-06-15T13:33:59.4511839Z             {
2026-06-15T13:33:59.4511969Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4512087Z               "line": 1372
2026-06-15T13:33:59.4512191Z             }
2026-06-15T13:33:59.4512303Z           ]
2026-06-15T13:33:59.4512402Z         },
2026-06-15T13:33:59.4512631Z         "int": {
2026-06-15T13:33:59.4512750Z           "complete": false,
2026-06-15T13:33:59.4512865Z           "evidence": []
2026-06-15T13:33:59.4512969Z         },
2026-06-15T13:33:59.4513069Z         "unit": {
2026-06-15T13:33:59.4513194Z           "complete": true,
2026-06-15T13:33:59.4513298Z           "evidence": [
2026-06-15T13:33:59.4513407Z             {
2026-06-15T13:33:59.4513574Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4513686Z               "line": 1111
2026-06-15T13:33:59.4513790Z             },
2026-06-15T13:33:59.4513896Z             {
2026-06-15T13:33:59.4514044Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4514148Z               "line": 912
2026-06-15T13:33:59.4514254Z             },
2026-06-15T13:33:59.4514358Z             {
2026-06-15T13:33:59.4514507Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4514621Z               "line": 1173
2026-06-15T13:33:59.4514725Z             },
2026-06-15T13:33:59.4514827Z             {
2026-06-15T13:33:59.4514969Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4515073Z               "line": 490
2026-06-15T13:33:59.4515170Z             },
2026-06-15T13:33:59.4515274Z             {
2026-06-15T13:33:59.4515402Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4515508Z               "line": 6599
2026-06-15T13:33:59.4515612Z             }
2026-06-15T13:33:59.4515712Z           ]
2026-06-15T13:33:59.4515813Z         }
2026-06-15T13:33:59.4515912Z       }
2026-06-15T13:33:59.4516017Z     },
2026-06-15T13:33:59.4516124Z     {
2026-06-15T13:33:59.4516236Z       "id": "REQ-INST-15",
2026-06-15T13:33:59.4517011Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T13:33:59.4517140Z       "requiredStages": [
2026-06-15T13:33:59.4517244Z         "doc",
2026-06-15T13:33:59.4517349Z         "impl",
2026-06-15T13:33:59.4517445Z         "unit"
2026-06-15T13:33:59.4517545Z       ],
2026-06-15T13:33:59.4517650Z       "stages": {
2026-06-15T13:33:59.4517760Z         "doc": {
2026-06-15T13:33:59.4517883Z           "complete": true,
2026-06-15T13:33:59.4517988Z           "evidence": [
2026-06-15T13:33:59.4518094Z             {
2026-06-15T13:33:59.4518342Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T13:33:59.4518460Z               "line": 3
2026-06-15T13:33:59.4518555Z             }
2026-06-15T13:33:59.4518667Z           ]
2026-06-15T13:33:59.4518771Z         },
2026-06-15T13:33:59.4518879Z         "impl": {
2026-06-15T13:33:59.4519064Z           "complete": true,
2026-06-15T13:33:59.4519177Z           "evidence": [
2026-06-15T13:33:59.4519282Z             {
2026-06-15T13:33:59.4519445Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4519567Z               "line": 353
2026-06-15T13:33:59.4519674Z             },
2026-06-15T13:33:59.4519778Z             {
2026-06-15T13:33:59.4519921Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4520031Z               "line": 60
2026-06-15T13:33:59.4520139Z             },
2026-06-15T13:33:59.4520246Z             {
2026-06-15T13:33:59.4520412Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4520632Z               "line": 368
2026-06-15T13:33:59.4520732Z             },
2026-06-15T13:33:59.4520836Z             {
2026-06-15T13:33:59.4520989Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4521108Z               "line": 417
2026-06-15T13:33:59.4521209Z             },
2026-06-15T13:33:59.4521309Z             {
2026-06-15T13:33:59.4521451Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4521562Z               "line": 19
2026-06-15T13:33:59.4521774Z             },
2026-06-15T13:33:59.4521870Z             {
2026-06-15T13:33:59.4522004Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4522117Z               "line": 70
2026-06-15T13:33:59.4522219Z             },
2026-06-15T13:33:59.4522333Z             {
2026-06-15T13:33:59.4522471Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4522585Z               "line": 96
2026-06-15T13:33:59.4522689Z             },
2026-06-15T13:33:59.4522795Z             {
2026-06-15T13:33:59.4522947Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4523057Z               "line": 121
2026-06-15T13:33:59.4523159Z             },
2026-06-15T13:33:59.4523257Z             {
2026-06-15T13:33:59.4523400Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4523507Z               "line": 172
2026-06-15T13:33:59.4523610Z             },
2026-06-15T13:33:59.4523711Z             {
2026-06-15T13:33:59.4523859Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4523982Z               "line": 146
2026-06-15T13:33:59.4524081Z             },
2026-06-15T13:33:59.4524181Z             {
2026-06-15T13:33:59.4524308Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4524432Z               "line": 1264
2026-06-15T13:33:59.4524538Z             }
2026-06-15T13:33:59.4524632Z           ]
2026-06-15T13:33:59.4524732Z         },
2026-06-15T13:33:59.4524833Z         "int": {
2026-06-15T13:33:59.4524956Z           "complete": false,
2026-06-15T13:33:59.4525072Z           "evidence": []
2026-06-15T13:33:59.4525176Z         },
2026-06-15T13:33:59.4525280Z         "unit": {
2026-06-15T13:33:59.4525406Z           "complete": true,
2026-06-15T13:33:59.4525519Z           "evidence": [
2026-06-15T13:33:59.4525619Z             {
2026-06-15T13:33:59.4525791Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4525905Z               "line": 577
2026-06-15T13:33:59.4526011Z             },
2026-06-15T13:33:59.4526124Z             {
2026-06-15T13:33:59.4526282Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.4526402Z               "line": 638
2026-06-15T13:33:59.4526506Z             },
2026-06-15T13:33:59.4526612Z             {
2026-06-15T13:33:59.4526745Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4526858Z               "line": 213
2026-06-15T13:33:59.4526967Z             },
2026-06-15T13:33:59.4527071Z             {
2026-06-15T13:33:59.4527222Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4527333Z               "line": 249
2026-06-15T13:33:59.4527438Z             },
2026-06-15T13:33:59.4527541Z             {
2026-06-15T13:33:59.4527691Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4527809Z               "line": 262
2026-06-15T13:33:59.4527914Z             },
2026-06-15T13:33:59.4528019Z             {
2026-06-15T13:33:59.4528148Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T13:33:59.4528268Z               "line": 338
2026-06-15T13:33:59.4528367Z             },
2026-06-15T13:33:59.4528477Z             {
2026-06-15T13:33:59.4528621Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4528724Z               "line": 543
2026-06-15T13:33:59.4528829Z             },
2026-06-15T13:33:59.4528935Z             {
2026-06-15T13:33:59.4529139Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4529250Z               "line": 6536
2026-06-15T13:33:59.4529448Z             },
2026-06-15T13:33:59.4529558Z             {
2026-06-15T13:33:59.4529680Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4529799Z               "line": 8180
2026-06-15T13:33:59.4529889Z             }
2026-06-15T13:33:59.4530009Z           ]
2026-06-15T13:33:59.4530104Z         }
2026-06-15T13:33:59.4530210Z       }
2026-06-15T13:33:59.4530315Z     },
2026-06-15T13:33:59.4530418Z     {
2026-06-15T13:33:59.4530539Z       "id": "REQ-INST-2",
2026-06-15T13:33:59.4530686Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T13:33:59.4530911Z       "requiredStages": [
2026-06-15T13:33:59.4531015Z         "impl",
2026-06-15T13:33:59.4531120Z         "unit"
2026-06-15T13:33:59.4531230Z       ],
2026-06-15T13:33:59.4531334Z       "stages": {
2026-06-15T13:33:59.4531445Z         "doc": {
2026-06-15T13:33:59.4531563Z           "complete": false,
2026-06-15T13:33:59.4531687Z           "evidence": []
2026-06-15T13:33:59.4531779Z         },
2026-06-15T13:33:59.4535239Z         "impl": {
2026-06-15T13:33:59.4535393Z           "complete": true,
2026-06-15T13:33:59.4535511Z           "evidence": [
2026-06-15T13:33:59.4535617Z             {
2026-06-15T13:33:59.4535793Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4535913Z               "line": 88
2026-06-15T13:33:59.4536017Z             },
2026-06-15T13:33:59.4536127Z             {
2026-06-15T13:33:59.4536290Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4536404Z               "line": 28
2026-06-15T13:33:59.4536527Z             },
2026-06-15T13:33:59.4536633Z             {
2026-06-15T13:33:59.4536789Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4536905Z               "line": 74
2026-06-15T13:33:59.4537013Z             },
2026-06-15T13:33:59.4537119Z             {
2026-06-15T13:33:59.4537263Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4537380Z               "line": 96
2026-06-15T13:33:59.4537494Z             },
2026-06-15T13:33:59.4537590Z             {
2026-06-15T13:33:59.4537716Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.4537826Z               "line": 86
2026-06-15T13:33:59.4537927Z             },
2026-06-15T13:33:59.4538026Z             {
2026-06-15T13:33:59.4538174Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T13:33:59.4538284Z               "line": 118
2026-06-15T13:33:59.4538383Z             }
2026-06-15T13:33:59.4538484Z           ]
2026-06-15T13:33:59.4538589Z         },
2026-06-15T13:33:59.4538693Z         "int": {
2026-06-15T13:33:59.4538813Z           "complete": false,
2026-06-15T13:33:59.4538932Z           "evidence": []
2026-06-15T13:33:59.4539109Z         },
2026-06-15T13:33:59.4539214Z         "unit": {
2026-06-15T13:33:59.4539332Z           "complete": true,
2026-06-15T13:33:59.4539433Z           "evidence": [
2026-06-15T13:33:59.4539534Z             {
2026-06-15T13:33:59.4539676Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T13:33:59.4539787Z               "line": 250
2026-06-15T13:33:59.4539895Z             },
2026-06-15T13:33:59.4540008Z             {
2026-06-15T13:33:59.4540151Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.4540264Z               "line": 280
2026-06-15T13:33:59.4540368Z             }
2026-06-15T13:33:59.4540469Z           ]
2026-06-15T13:33:59.4540574Z         }
2026-06-15T13:33:59.4540678Z       }
2026-06-15T13:33:59.4540779Z     },
2026-06-15T13:33:59.4540880Z     {
2026-06-15T13:33:59.4541007Z       "id": "REQ-INST-3",
2026-06-15T13:33:59.4541203Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T13:33:59.4541312Z       "requiredStages": [
2026-06-15T13:33:59.4541423Z         "doc",
2026-06-15T13:33:59.4541522Z         "impl",
2026-06-15T13:33:59.4541632Z         "unit"
2026-06-15T13:33:59.4541728Z       ],
2026-06-15T13:33:59.4541837Z       "stages": {
2026-06-15T13:33:59.4541942Z         "doc": {
2026-06-15T13:33:59.4542057Z           "complete": true,
2026-06-15T13:33:59.4542320Z           "evidence": [
2026-06-15T13:33:59.4542424Z             {
2026-06-15T13:33:59.4542571Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T13:33:59.4542678Z               "line": 3
2026-06-15T13:33:59.4542791Z             }
2026-06-15T13:33:59.4542894Z           ]
2026-06-15T13:33:59.4542990Z         },
2026-06-15T13:33:59.4543096Z         "impl": {
2026-06-15T13:33:59.4543209Z           "complete": true,
2026-06-15T13:33:59.4543334Z           "evidence": [
2026-06-15T13:33:59.4543548Z             {
2026-06-15T13:33:59.4543706Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.4543819Z               "line": 59
2026-06-15T13:33:59.4543915Z             },
2026-06-15T13:33:59.4544021Z             {
2026-06-15T13:33:59.4544177Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4544293Z               "line": 480
2026-06-15T13:33:59.4544406Z             },
2026-06-15T13:33:59.4544506Z             {
2026-06-15T13:33:59.4544679Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4544783Z               "line": 204
2026-06-15T13:33:59.4544884Z             },
2026-06-15T13:33:59.4544994Z             {
2026-06-15T13:33:59.4545139Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4545259Z               "line": 334
2026-06-15T13:33:59.4545362Z             },
2026-06-15T13:33:59.4545471Z             {
2026-06-15T13:33:59.4545619Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4545742Z               "line": 368
2026-06-15T13:33:59.4545843Z             },
2026-06-15T13:33:59.4545953Z             {
2026-06-15T13:33:59.4546110Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T13:33:59.4546221Z               "line": 74
2026-06-15T13:33:59.4546334Z             },
2026-06-15T13:33:59.4546429Z             {
2026-06-15T13:33:59.4546582Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4546701Z               "line": 234
2026-06-15T13:33:59.4546816Z             },
2026-06-15T13:33:59.4546916Z             {
2026-06-15T13:33:59.4547078Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4547194Z               "line": 390
2026-06-15T13:33:59.4547292Z             },
2026-06-15T13:33:59.4547393Z             {
2026-06-15T13:33:59.4547541Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4547645Z               "line": 45
2026-06-15T13:33:59.4547756Z             },
2026-06-15T13:33:59.4547861Z             {
2026-06-15T13:33:59.4548002Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4548107Z               "line": 114
2026-06-15T13:33:59.4548215Z             },
2026-06-15T13:33:59.4548319Z             {
2026-06-15T13:33:59.4548463Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4548572Z               "line": 152
2026-06-15T13:33:59.4548676Z             },
2026-06-15T13:33:59.4548787Z             {
2026-06-15T13:33:59.4548939Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4549125Z               "line": 168
2026-06-15T13:33:59.4549225Z             },
2026-06-15T13:33:59.4549325Z             {
2026-06-15T13:33:59.4549473Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4549578Z               "line": 178
2026-06-15T13:33:59.4549688Z             },
2026-06-15T13:33:59.4549793Z             {
2026-06-15T13:33:59.4549940Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4550065Z               "line": 210
2026-06-15T13:33:59.4550159Z             },
2026-06-15T13:33:59.4550260Z             {
2026-06-15T13:33:59.4550403Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4550521Z               "line": 287
2026-06-15T13:33:59.4550616Z             },
2026-06-15T13:33:59.4550711Z             {
2026-06-15T13:33:59.4550857Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4551077Z               "line": 311
2026-06-15T13:33:59.4551186Z             },
2026-06-15T13:33:59.4551286Z             {
2026-06-15T13:33:59.4551435Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4551543Z               "line": 389
2026-06-15T13:33:59.4551649Z             },
2026-06-15T13:33:59.4551759Z             {
2026-06-15T13:33:59.4551902Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4552011Z               "line": 438
2026-06-15T13:33:59.4552231Z             },
2026-06-15T13:33:59.4552336Z             {
2026-06-15T13:33:59.4552483Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T13:33:59.4552599Z               "line": 37
2026-06-15T13:33:59.4552712Z             },
2026-06-15T13:33:59.4552807Z             {
2026-06-15T13:33:59.4552961Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4553074Z               "line": 62
2026-06-15T13:33:59.4553185Z             },
2026-06-15T13:33:59.4553290Z             {
2026-06-15T13:33:59.4553431Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4553546Z               "line": 200
2026-06-15T13:33:59.4553637Z             },
2026-06-15T13:33:59.4553741Z             {
2026-06-15T13:33:59.4553870Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4553990Z               "line": 1597
2026-06-15T13:33:59.4554093Z             }
2026-06-15T13:33:59.4554195Z           ]
2026-06-15T13:33:59.4554299Z         },
2026-06-15T13:33:59.4554403Z         "int": {
2026-06-15T13:33:59.4554528Z           "complete": false,
2026-06-15T13:33:59.4554632Z           "evidence": []
2026-06-15T13:33:59.4554732Z         },
2026-06-15T13:33:59.4554834Z         "unit": {
2026-06-15T13:33:59.4554952Z           "complete": true,
2026-06-15T13:33:59.4555071Z           "evidence": [
2026-06-15T13:33:59.4555177Z             {
2026-06-15T13:33:59.4555324Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.4555444Z               "line": 360
2026-06-15T13:33:59.4555554Z             },
2026-06-15T13:33:59.4555652Z             {
2026-06-15T13:33:59.4555804Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4555922Z               "line": 787
2026-06-15T13:33:59.4556026Z             },
2026-06-15T13:33:59.4556136Z             {
2026-06-15T13:33:59.4556284Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4556403Z               "line": 844
2026-06-15T13:33:59.4556518Z             },
2026-06-15T13:33:59.4556627Z             {
2026-06-15T13:33:59.4556781Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4556890Z               "line": 889
2026-06-15T13:33:59.4556994Z             },
2026-06-15T13:33:59.4557091Z             {
2026-06-15T13:33:59.4557238Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4557352Z               "line": 1014
2026-06-15T13:33:59.4557448Z             },
2026-06-15T13:33:59.4557557Z             {
2026-06-15T13:33:59.4557720Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4557842Z               "line": 1212
2026-06-15T13:33:59.4557943Z             },
2026-06-15T13:33:59.4558045Z             {
2026-06-15T13:33:59.4558215Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4558326Z               "line": 1353
2026-06-15T13:33:59.4558435Z             },
2026-06-15T13:33:59.4558538Z             {
2026-06-15T13:33:59.4558700Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4558803Z               "line": 449
2026-06-15T13:33:59.4558907Z             },
2026-06-15T13:33:59.4559075Z             {
2026-06-15T13:33:59.4559222Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4559343Z               "line": 485
2026-06-15T13:33:59.4559442Z             },
2026-06-15T13:33:59.4559547Z             {
2026-06-15T13:33:59.4559690Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4559909Z               "line": 540
2026-06-15T13:33:59.4560014Z             },
2026-06-15T13:33:59.4560114Z             {
2026-06-15T13:33:59.4560268Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4560381Z               "line": 697
2026-06-15T13:33:59.4560476Z             },
2026-06-15T13:33:59.4560578Z             {
2026-06-15T13:33:59.4560724Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4560844Z               "line": 931
2026-06-15T13:33:59.4561043Z             },
2026-06-15T13:33:59.4561142Z             {
2026-06-15T13:33:59.4561290Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4561398Z               "line": 945
2026-06-15T13:33:59.4561498Z             },
2026-06-15T13:33:59.4561604Z             {
2026-06-15T13:33:59.4561770Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4561886Z               "line": 1214
2026-06-15T13:33:59.4562000Z             },
2026-06-15T13:33:59.4562103Z             {
2026-06-15T13:33:59.4562252Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.4562366Z               "line": 440
2026-06-15T13:33:59.4562476Z             },
2026-06-15T13:33:59.4562586Z             {
2026-06-15T13:33:59.4562714Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4562835Z               "line": 6560
2026-06-15T13:33:59.4562934Z             }
2026-06-15T13:33:59.4563048Z           ]
2026-06-15T13:33:59.4563154Z         }
2026-06-15T13:33:59.4563258Z       }
2026-06-15T13:33:59.4563363Z     },
2026-06-15T13:33:59.4563469Z     {
2026-06-15T13:33:59.4563591Z       "id": "REQ-INST-4",
2026-06-15T13:33:59.4563798Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T13:33:59.4563915Z       "requiredStages": [
2026-06-15T13:33:59.4564014Z         "impl",
2026-06-15T13:33:59.4564125Z         "unit"
2026-06-15T13:33:59.4564230Z       ],
2026-06-15T13:33:59.4564334Z       "stages": {
2026-06-15T13:33:59.4564440Z         "doc": {
2026-06-15T13:33:59.4564564Z           "complete": false,
2026-06-15T13:33:59.4564677Z           "evidence": []
2026-06-15T13:33:59.4564774Z         },
2026-06-15T13:33:59.4564888Z         "impl": {
2026-06-15T13:33:59.4565007Z           "complete": true,
2026-06-15T13:33:59.4565112Z           "evidence": [
2026-06-15T13:33:59.4565217Z             {
2026-06-15T13:33:59.4565360Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4565484Z               "line": 335
2026-06-15T13:33:59.4565584Z             },
2026-06-15T13:33:59.4565695Z             {
2026-06-15T13:33:59.4565850Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4565961Z               "line": 202
2026-06-15T13:33:59.4566067Z             },
2026-06-15T13:33:59.4566165Z             {
2026-06-15T13:33:59.4566312Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4566417Z               "line": 234
2026-06-15T13:33:59.4566524Z             },
2026-06-15T13:33:59.4566634Z             {
2026-06-15T13:33:59.4566779Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4566896Z               "line": 274
2026-06-15T13:33:59.4566997Z             }
2026-06-15T13:33:59.4567102Z           ]
2026-06-15T13:33:59.4567206Z         },
2026-06-15T13:33:59.4567307Z         "int": {
2026-06-15T13:33:59.4567426Z           "complete": false,
2026-06-15T13:33:59.4567535Z           "evidence": []
2026-06-15T13:33:59.4567641Z         },
2026-06-15T13:33:59.4567750Z         "unit": {
2026-06-15T13:33:59.4567879Z           "complete": true,
2026-06-15T13:33:59.4567994Z           "evidence": [
2026-06-15T13:33:59.4568099Z             {
2026-06-15T13:33:59.4568247Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.4568351Z               "line": 839
2026-06-15T13:33:59.4568451Z             },
2026-06-15T13:33:59.4568552Z             {
2026-06-15T13:33:59.4568704Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4568891Z               "line": 561
2026-06-15T13:33:59.4569065Z             },
2026-06-15T13:33:59.4569169Z             {
2026-06-15T13:33:59.4569317Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4569425Z               "line": 668
2026-06-15T13:33:59.4569530Z             },
2026-06-15T13:33:59.4569631Z             {
2026-06-15T13:33:59.4569778Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4569879Z               "line": 750
2026-06-15T13:33:59.4570092Z             }
2026-06-15T13:33:59.4570189Z           ]
2026-06-15T13:33:59.4570298Z         }
2026-06-15T13:33:59.4570392Z       }
2026-06-15T13:33:59.4570494Z     },
2026-06-15T13:33:59.4570603Z     {
2026-06-15T13:33:59.4570707Z       "id": "REQ-INST-5",
2026-06-15T13:33:59.4570932Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T13:33:59.4571051Z       "requiredStages": [
2026-06-15T13:33:59.4571162Z         "impl",
2026-06-15T13:33:59.4571260Z         "unit",
2026-06-15T13:33:59.4571366Z         "int"
2026-06-15T13:33:59.4571472Z       ],
2026-06-15T13:33:59.4571575Z       "stages": {
2026-06-15T13:33:59.4571684Z         "doc": {
2026-06-15T13:33:59.4571808Z           "complete": false,
2026-06-15T13:33:59.4571916Z           "evidence": []
2026-06-15T13:33:59.4572020Z         },
2026-06-15T13:33:59.4572126Z         "impl": {
2026-06-15T13:33:59.4572245Z           "complete": true,
2026-06-15T13:33:59.4572353Z           "evidence": [
2026-06-15T13:33:59.4572465Z             {
2026-06-15T13:33:59.4572611Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T13:33:59.4572731Z               "line": 85
2026-06-15T13:33:59.4572826Z             },
2026-06-15T13:33:59.4572926Z             {
2026-06-15T13:33:59.4573080Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4573179Z               "line": 68
2026-06-15T13:33:59.4573289Z             },
2026-06-15T13:33:59.4573390Z             {
2026-06-15T13:33:59.4573537Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4573641Z               "line": 99
2026-06-15T13:33:59.4573748Z             },
2026-06-15T13:33:59.4573856Z             {
2026-06-15T13:33:59.4573995Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4574118Z               "line": 183
2026-06-15T13:33:59.4574219Z             },
2026-06-15T13:33:59.4574324Z             {
2026-06-15T13:33:59.4574457Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4574584Z               "line": 314
2026-06-15T13:33:59.4574690Z             }
2026-06-15T13:33:59.4574795Z           ]
2026-06-15T13:33:59.4574899Z         },
2026-06-15T13:33:59.4575000Z         "int": {
2026-06-15T13:33:59.4575124Z           "complete": true,
2026-06-15T13:33:59.4575242Z           "evidence": [
2026-06-15T13:33:59.4575348Z             {
2026-06-15T13:33:59.4575510Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.4575625Z               "line": 156
2026-06-15T13:33:59.4575725Z             },
2026-06-15T13:33:59.4575829Z             {
2026-06-15T13:33:59.4575983Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:33:59.4576096Z               "line": 102
2026-06-15T13:33:59.4576206Z             },
2026-06-15T13:33:59.4576321Z             {
2026-06-15T13:33:59.4576468Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4576584Z               "line": 638
2026-06-15T13:33:59.4576697Z             },
2026-06-15T13:33:59.4576801Z             {
2026-06-15T13:33:59.4576948Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4577066Z               "line": 975
2026-06-15T13:33:59.4577175Z             }
2026-06-15T13:33:59.4577276Z           ]
2026-06-15T13:33:59.4577385Z         },
2026-06-15T13:33:59.4577490Z         "unit": {
2026-06-15T13:33:59.4577610Z           "complete": true,
2026-06-15T13:33:59.4577719Z           "evidence": [
2026-06-15T13:33:59.4577920Z             {
2026-06-15T13:33:59.4578067Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4578178Z               "line": 552
2026-06-15T13:33:59.4578282Z             },
2026-06-15T13:33:59.4578386Z             {
2026-06-15T13:33:59.4578530Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4578634Z               "line": 595
2026-06-15T13:33:59.4578744Z             },
2026-06-15T13:33:59.4578850Z             {
2026-06-15T13:33:59.4579155Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4579273Z               "line": 219
2026-06-15T13:33:59.4579373Z             }
2026-06-15T13:33:59.4579470Z           ]
2026-06-15T13:33:59.4579574Z         }
2026-06-15T13:33:59.4579678Z       }
2026-06-15T13:33:59.4579783Z     },
2026-06-15T13:33:59.4579886Z     {
2026-06-15T13:33:59.4580004Z       "id": "REQ-INST-6",
2026-06-15T13:33:59.4580225Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T13:33:59.4580352Z       "requiredStages": [
2026-06-15T13:33:59.4580453Z         "impl",
2026-06-15T13:33:59.4580563Z         "unit",
2026-06-15T13:33:59.4580676Z         "int"
2026-06-15T13:33:59.4580773Z       ],
2026-06-15T13:33:59.4580878Z       "stages": {
2026-06-15T13:33:59.4580972Z         "doc": {
2026-06-15T13:33:59.4581097Z           "complete": true,
2026-06-15T13:33:59.4581201Z           "evidence": [
2026-06-15T13:33:59.4581306Z             {
2026-06-15T13:33:59.4581436Z               "path": "docs/DEFERRED.md",
2026-06-15T13:33:59.4581554Z               "line": 13
2026-06-15T13:33:59.4581649Z             }
2026-06-15T13:33:59.4581760Z           ]
2026-06-15T13:33:59.4581868Z         },
2026-06-15T13:33:59.4581974Z         "impl": {
2026-06-15T13:33:59.4582099Z           "complete": true,
2026-06-15T13:33:59.4582216Z           "evidence": [
2026-06-15T13:33:59.4582321Z             {
2026-06-15T13:33:59.4582481Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4582604Z               "line": 391
2026-06-15T13:33:59.4582710Z             },
2026-06-15T13:33:59.4582800Z             {
2026-06-15T13:33:59.4582962Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:33:59.4583077Z               "line": 27
2026-06-15T13:33:59.4583176Z             },
2026-06-15T13:33:59.4583287Z             {
2026-06-15T13:33:59.4583435Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:33:59.4583543Z               "line": 73
2026-06-15T13:33:59.4583664Z             },
2026-06-15T13:33:59.4583763Z             {
2026-06-15T13:33:59.4583911Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T13:33:59.4584016Z               "line": 182
2026-06-15T13:33:59.4584121Z             },
2026-06-15T13:33:59.4584226Z             {
2026-06-15T13:33:59.4584378Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4584498Z               "line": 426
2026-06-15T13:33:59.4584604Z             },
2026-06-15T13:33:59.4584711Z             {
2026-06-15T13:33:59.4584856Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T13:33:59.4584966Z               "line": 31
2026-06-15T13:33:59.4585064Z             },
2026-06-15T13:33:59.4585168Z             {
2026-06-15T13:33:59.4585322Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.4585426Z               "line": 202
2026-06-15T13:33:59.4585536Z             },
2026-06-15T13:33:59.4585636Z             {
2026-06-15T13:33:59.4585779Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.4585904Z               "line": 83
2026-06-15T13:33:59.4586013Z             },
2026-06-15T13:33:59.4586127Z             {
2026-06-15T13:33:59.4586261Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4586379Z               "line": 1598
2026-06-15T13:33:59.4586485Z             },
2026-06-15T13:33:59.4586590Z             {
2026-06-15T13:33:59.4586723Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4586971Z               "line": 179
2026-06-15T13:33:59.4587062Z             },
2026-06-15T13:33:59.4587164Z             {
2026-06-15T13:33:59.4587305Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4587408Z               "line": 215
2026-06-15T13:33:59.4587513Z             }
2026-06-15T13:33:59.4587616Z           ]
2026-06-15T13:33:59.4587725Z         },
2026-06-15T13:33:59.4587831Z         "int": {
2026-06-15T13:33:59.4587950Z           "complete": true,
2026-06-15T13:33:59.4588064Z           "evidence": [
2026-06-15T13:33:59.4588260Z             {
2026-06-15T13:33:59.4588423Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4588542Z               "line": 652
2026-06-15T13:33:59.4588636Z             },
2026-06-15T13:33:59.4588738Z             {
2026-06-15T13:33:59.4588885Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4589076Z               "line": 1020
2026-06-15T13:33:59.4589176Z             },
2026-06-15T13:33:59.4589276Z             {
2026-06-15T13:33:59.4589415Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4589533Z               "line": 726
2026-06-15T13:33:59.4589633Z             }
2026-06-15T13:33:59.4589734Z           ]
2026-06-15T13:33:59.4589833Z         },
2026-06-15T13:33:59.4589938Z         "unit": {
2026-06-15T13:33:59.4590063Z           "complete": true,
2026-06-15T13:33:59.4590167Z           "evidence": [
2026-06-15T13:33:59.4590271Z             {
2026-06-15T13:33:59.4590423Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4590545Z               "line": 661
2026-06-15T13:33:59.4590655Z             },
2026-06-15T13:33:59.4590755Z             {
2026-06-15T13:33:59.4590907Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.4591013Z               "line": 899
2026-06-15T13:33:59.4591128Z             },
2026-06-15T13:33:59.4591227Z             {
2026-06-15T13:33:59.4591371Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T13:33:59.4591489Z               "line": 66
2026-06-15T13:33:59.4591594Z             },
2026-06-15T13:33:59.4591709Z             {
2026-06-15T13:33:59.4591856Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.4591967Z               "line": 297
2026-06-15T13:33:59.4592080Z             },
2026-06-15T13:33:59.4592176Z             {
2026-06-15T13:33:59.4592325Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.4592428Z               "line": 203
2026-06-15T13:33:59.4592544Z             }
2026-06-15T13:33:59.4592644Z           ]
2026-06-15T13:33:59.4592747Z         }
2026-06-15T13:33:59.4592851Z       }
2026-06-15T13:33:59.4592957Z     },
2026-06-15T13:33:59.4593064Z     {
2026-06-15T13:33:59.4593183Z       "id": "REQ-INST-7",
2026-06-15T13:33:59.4593356Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T13:33:59.4593474Z       "requiredStages": [
2026-06-15T13:33:59.4593576Z         "impl",
2026-06-15T13:33:59.4593685Z         "unit",
2026-06-15T13:33:59.4593794Z         "int"
2026-06-15T13:33:59.4593900Z       ],
2026-06-15T13:33:59.4594000Z       "stages": {
2026-06-15T13:33:59.4594108Z         "doc": {
2026-06-15T13:33:59.4594229Z           "complete": false,
2026-06-15T13:33:59.4594352Z           "evidence": []
2026-06-15T13:33:59.4594456Z         },
2026-06-15T13:33:59.4594567Z         "impl": {
2026-06-15T13:33:59.4594690Z           "complete": true,
2026-06-15T13:33:59.4594806Z           "evidence": [
2026-06-15T13:33:59.4594906Z             {
2026-06-15T13:33:59.4595058Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4595178Z               "line": 436
2026-06-15T13:33:59.4595290Z             },
2026-06-15T13:33:59.4595382Z             {
2026-06-15T13:33:59.4595554Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4595662Z               "line": 27
2026-06-15T13:33:59.4595772Z             },
2026-06-15T13:33:59.4595873Z             {
2026-06-15T13:33:59.4596135Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4596244Z               "line": 207
2026-06-15T13:33:59.4596348Z             },
2026-06-15T13:33:59.4596455Z             {
2026-06-15T13:33:59.4596620Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4596740Z               "line": 344
2026-06-15T13:33:59.4596850Z             },
2026-06-15T13:33:59.4596954Z             {
2026-06-15T13:33:59.4597108Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T13:33:59.4597326Z               "line": 59
2026-06-15T13:33:59.4597437Z             },
2026-06-15T13:33:59.4597545Z             {
2026-06-15T13:33:59.4597709Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4597836Z               "line": 41
2026-06-15T13:33:59.4597940Z             },
2026-06-15T13:33:59.4598050Z             {
2026-06-15T13:33:59.4598205Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4598324Z               "line": 27
2026-06-15T13:33:59.4598435Z             },
2026-06-15T13:33:59.4598548Z             {
2026-06-15T13:33:59.4598706Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4598815Z               "line": 119
2026-06-15T13:33:59.4598929Z             },
2026-06-15T13:33:59.4599107Z             {
2026-06-15T13:33:59.4599269Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4599383Z               "line": 134
2026-06-15T13:33:59.4599492Z             },
2026-06-15T13:33:59.4599607Z             {
2026-06-15T13:33:59.4599760Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T13:33:59.4599878Z               "line": 139
2026-06-15T13:33:59.4599984Z             }
2026-06-15T13:33:59.4600088Z           ]
2026-06-15T13:33:59.4600193Z         },
2026-06-15T13:33:59.4600304Z         "int": {
2026-06-15T13:33:59.4600427Z           "complete": true,
2026-06-15T13:33:59.4600528Z           "evidence": [
2026-06-15T13:33:59.4600638Z             {
2026-06-15T13:33:59.4600793Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:33:59.4600903Z               "line": 102
2026-06-15T13:33:59.4601011Z             },
2026-06-15T13:33:59.4601114Z             {
2026-06-15T13:33:59.4601273Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4601387Z               "line": 596
2026-06-15T13:33:59.4601487Z             },
2026-06-15T13:33:59.4601593Z             {
2026-06-15T13:33:59.4601749Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4601865Z               "line": 870
2026-06-15T13:33:59.4601974Z             }
2026-06-15T13:33:59.4602083Z           ]
2026-06-15T13:33:59.4602179Z         },
2026-06-15T13:33:59.4602293Z         "unit": {
2026-06-15T13:33:59.4602407Z           "complete": true,
2026-06-15T13:33:59.4602523Z           "evidence": [
2026-06-15T13:33:59.4602627Z             {
2026-06-15T13:33:59.4602794Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4602909Z               "line": 1082
2026-06-15T13:33:59.4603018Z             },
2026-06-15T13:33:59.4603119Z             {
2026-06-15T13:33:59.4603284Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4603398Z               "line": 1414
2026-06-15T13:33:59.4603498Z             },
2026-06-15T13:33:59.4603606Z             {
2026-06-15T13:33:59.4603777Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T13:33:59.4603883Z               "line": 84
2026-06-15T13:33:59.4604001Z             },
2026-06-15T13:33:59.4604102Z             {
2026-06-15T13:33:59.4604255Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4604373Z               "line": 780
2026-06-15T13:33:59.4604474Z             },
2026-06-15T13:33:59.4604579Z             {
2026-06-15T13:33:59.4604732Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4604845Z               "line": 791
2026-06-15T13:33:59.4604945Z             },
2026-06-15T13:33:59.4605156Z             {
2026-06-15T13:33:59.4605298Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4605409Z               "line": 806
2026-06-15T13:33:59.4605512Z             },
2026-06-15T13:33:59.4605618Z             {
2026-06-15T13:33:59.4605781Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4605894Z               "line": 166
2026-06-15T13:33:59.4606001Z             },
2026-06-15T13:33:59.4606110Z             {
2026-06-15T13:33:59.4606356Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4606480Z               "line": 181
2026-06-15T13:33:59.4606575Z             },
2026-06-15T13:33:59.4606675Z             {
2026-06-15T13:33:59.4606818Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.4606937Z               "line": 214
2026-06-15T13:33:59.4607052Z             }
2026-06-15T13:33:59.4607157Z           ]
2026-06-15T13:33:59.4607262Z         }
2026-06-15T13:33:59.4607372Z       }
2026-06-15T13:33:59.4607481Z     },
2026-06-15T13:33:59.4607581Z     {
2026-06-15T13:33:59.4607705Z       "id": "REQ-INST-8",
2026-06-15T13:33:59.4607881Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T13:33:59.4607993Z       "requiredStages": [
2026-06-15T13:33:59.4608105Z         "impl",
2026-06-15T13:33:59.4608206Z         "unit",
2026-06-15T13:33:59.4608312Z         "int"
2026-06-15T13:33:59.4608415Z       ],
2026-06-15T13:33:59.4608533Z       "stages": {
2026-06-15T13:33:59.4608662Z         "doc": {
2026-06-15T13:33:59.4608784Z           "complete": false,
2026-06-15T13:33:59.4608903Z           "evidence": []
2026-06-15T13:33:59.4609065Z         },
2026-06-15T13:33:59.4609180Z         "impl": {
2026-06-15T13:33:59.4609285Z           "complete": true,
2026-06-15T13:33:59.4609399Z           "evidence": [
2026-06-15T13:33:59.4609504Z             {
2026-06-15T13:33:59.4609657Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.4609776Z               "line": 104
2026-06-15T13:33:59.4609877Z             },
2026-06-15T13:33:59.4609986Z             {
2026-06-15T13:33:59.4610138Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.4610253Z               "line": 299
2026-06-15T13:33:59.4610357Z             },
2026-06-15T13:33:59.4610458Z             {
2026-06-15T13:33:59.4610610Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.4610715Z               "line": 339
2026-06-15T13:33:59.4610826Z             },
2026-06-15T13:33:59.4610934Z             {
2026-06-15T13:33:59.4611088Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.4611198Z               "line": 62
2026-06-15T13:33:59.4611301Z             }
2026-06-15T13:33:59.4611410Z           ]
2026-06-15T13:33:59.4611510Z         },
2026-06-15T13:33:59.4611623Z         "int": {
2026-06-15T13:33:59.4611742Z           "complete": true,
2026-06-15T13:33:59.4611862Z           "evidence": [
2026-06-15T13:33:59.4611957Z             {
2026-06-15T13:33:59.4612115Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.4612224Z               "line": 415
2026-06-15T13:33:59.4612328Z             },
2026-06-15T13:33:59.4612439Z             {
2026-06-15T13:33:59.4612591Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4612701Z               "line": 934
2026-06-15T13:33:59.4612806Z             }
2026-06-15T13:33:59.4612901Z           ]
2026-06-15T13:33:59.4613010Z         },
2026-06-15T13:33:59.4613120Z         "unit": {
2026-06-15T13:33:59.4616580Z           "complete": true,
2026-06-15T13:33:59.4616735Z           "evidence": [
2026-06-15T13:33:59.4616844Z             {
2026-06-15T13:33:59.4617013Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4617125Z               "line": 358
2026-06-15T13:33:59.4617235Z             },
2026-06-15T13:33:59.4617341Z             {
2026-06-15T13:33:59.4617507Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4617759Z               "line": 513
2026-06-15T13:33:59.4617865Z             },
2026-06-15T13:33:59.4617970Z             {
2026-06-15T13:33:59.4618113Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.4618238Z               "line": 116
2026-06-15T13:33:59.4618332Z             },
2026-06-15T13:33:59.4618437Z             {
2026-06-15T13:33:59.4618586Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.4618694Z               "line": 160
2026-06-15T13:33:59.4618905Z             }
2026-06-15T13:33:59.4619098Z           ]
2026-06-15T13:33:59.4619204Z         }
2026-06-15T13:33:59.4619306Z       }
2026-06-15T13:33:59.4619410Z     },
2026-06-15T13:33:59.4619512Z     {
2026-06-15T13:33:59.4619630Z       "id": "REQ-INST-9",
2026-06-15T13:33:59.4619855Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T13:33:59.4619973Z       "requiredStages": [
2026-06-15T13:33:59.4620079Z         "impl",
2026-06-15T13:33:59.4620193Z         "unit"
2026-06-15T13:33:59.4620307Z       ],
2026-06-15T13:33:59.4620403Z       "stages": {
2026-06-15T13:33:59.4620513Z         "doc": {
2026-06-15T13:33:59.4620641Z           "complete": false,
2026-06-15T13:33:59.4620752Z           "evidence": []
2026-06-15T13:33:59.4620856Z         },
2026-06-15T13:33:59.4620961Z         "impl": {
2026-06-15T13:33:59.4621081Z           "complete": true,
2026-06-15T13:33:59.4621185Z           "evidence": [
2026-06-15T13:33:59.4621294Z             {
2026-06-15T13:33:59.4621448Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4621561Z               "line": 417
2026-06-15T13:33:59.4621668Z             }
2026-06-15T13:33:59.4621772Z           ]
2026-06-15T13:33:59.4621880Z         },
2026-06-15T13:33:59.4621985Z         "int": {
2026-06-15T13:33:59.4622103Z           "complete": false,
2026-06-15T13:33:59.4622226Z           "evidence": []
2026-06-15T13:33:59.4622326Z         },
2026-06-15T13:33:59.4622441Z         "unit": {
2026-06-15T13:33:59.4622545Z           "complete": true,
2026-06-15T13:33:59.4622665Z           "evidence": [
2026-06-15T13:33:59.4622770Z             {
2026-06-15T13:33:59.4622936Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4623060Z               "line": 1321
2026-06-15T13:33:59.4623169Z             },
2026-06-15T13:33:59.4623275Z             {
2026-06-15T13:33:59.4623427Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4623537Z               "line": 1330
2026-06-15T13:33:59.4623643Z             },
2026-06-15T13:33:59.4623752Z             {
2026-06-15T13:33:59.4623900Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4624005Z               "line": 1346
2026-06-15T13:33:59.4624114Z             },
2026-06-15T13:33:59.4624220Z             {
2026-06-15T13:33:59.4624376Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4624489Z               "line": 1358
2026-06-15T13:33:59.4624595Z             },
2026-06-15T13:33:59.4624698Z             {
2026-06-15T13:33:59.4624844Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4624965Z               "line": 1378
2026-06-15T13:33:59.4625064Z             }
2026-06-15T13:33:59.4625174Z           ]
2026-06-15T13:33:59.4625284Z         }
2026-06-15T13:33:59.4625379Z       }
2026-06-15T13:33:59.4625488Z     },
2026-06-15T13:33:59.4625589Z     {
2026-06-15T13:33:59.4625713Z       "id": "REQ-INSTALL-1",
2026-06-15T13:33:59.4625947Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T13:33:59.4626070Z       "requiredStages": [
2026-06-15T13:33:59.4626176Z         "doc",
2026-06-15T13:33:59.4626285Z         "impl",
2026-06-15T13:33:59.4626395Z         "int"
2026-06-15T13:33:59.4626496Z       ],
2026-06-15T13:33:59.4626600Z       "stages": {
2026-06-15T13:33:59.4626705Z         "doc": {
2026-06-15T13:33:59.4626825Z           "complete": true,
2026-06-15T13:33:59.4627067Z           "evidence": [
2026-06-15T13:33:59.4627168Z             {
2026-06-15T13:33:59.4627290Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4627409Z               "line": 694
2026-06-15T13:33:59.4627515Z             }
2026-06-15T13:33:59.4627619Z           ]
2026-06-15T13:33:59.4627724Z         },
2026-06-15T13:33:59.4627835Z         "impl": {
2026-06-15T13:33:59.4627953Z           "complete": true,
2026-06-15T13:33:59.4628062Z           "evidence": [
2026-06-15T13:33:59.4628168Z             {
2026-06-15T13:33:59.4628421Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4628530Z               "line": 57
2026-06-15T13:33:59.4628639Z             },
2026-06-15T13:33:59.4628745Z             {
2026-06-15T13:33:59.4628882Z               "path": "installer/install.sh",
2026-06-15T13:33:59.4629070Z               "line": 52
2026-06-15T13:33:59.4629164Z             }
2026-06-15T13:33:59.4629278Z           ]
2026-06-15T13:33:59.4629380Z         },
2026-06-15T13:33:59.4629493Z         "int": {
2026-06-15T13:33:59.4629616Z           "complete": true,
2026-06-15T13:33:59.4629725Z           "evidence": [
2026-06-15T13:33:59.4629829Z             {
2026-06-15T13:33:59.4629985Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:33:59.4630096Z               "line": 21
2026-06-15T13:33:59.4630200Z             }
2026-06-15T13:33:59.4630300Z           ]
2026-06-15T13:33:59.4630406Z         },
2026-06-15T13:33:59.4630510Z         "unit": {
2026-06-15T13:33:59.4630634Z           "complete": false,
2026-06-15T13:33:59.4630758Z           "evidence": []
2026-06-15T13:33:59.4630857Z         }
2026-06-15T13:33:59.4630964Z       }
2026-06-15T13:33:59.4631064Z     },
2026-06-15T13:33:59.4631163Z     {
2026-06-15T13:33:59.4631278Z       "id": "REQ-INSTALL-2",
2026-06-15T13:33:59.4631450Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T13:33:59.4631573Z       "requiredStages": [
2026-06-15T13:33:59.4631675Z         "doc"
2026-06-15T13:33:59.4631783Z       ],
2026-06-15T13:33:59.4631888Z       "stages": {
2026-06-15T13:33:59.4631994Z         "doc": {
2026-06-15T13:33:59.4632117Z           "complete": true,
2026-06-15T13:33:59.4632233Z           "evidence": [
2026-06-15T13:33:59.4632337Z             {
2026-06-15T13:33:59.4632459Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4632564Z               "line": 695
2026-06-15T13:33:59.4632668Z             }
2026-06-15T13:33:59.4632772Z           ]
2026-06-15T13:33:59.4632877Z         },
2026-06-15T13:33:59.4632996Z         "impl": {
2026-06-15T13:33:59.4633115Z           "complete": false,
2026-06-15T13:33:59.4633240Z           "evidence": []
2026-06-15T13:33:59.4633345Z         },
2026-06-15T13:33:59.4633448Z         "int": {
2026-06-15T13:33:59.4633564Z           "complete": false,
2026-06-15T13:33:59.4633678Z           "evidence": []
2026-06-15T13:33:59.4633782Z         },
2026-06-15T13:33:59.4633884Z         "unit": {
2026-06-15T13:33:59.4634002Z           "complete": false,
2026-06-15T13:33:59.4634111Z           "evidence": []
2026-06-15T13:33:59.4634218Z         }
2026-06-15T13:33:59.4634321Z       }
2026-06-15T13:33:59.4634426Z     },
2026-06-15T13:33:59.4634532Z     {
2026-06-15T13:33:59.4634655Z       "id": "REQ-INSTALL-3",
2026-06-15T13:33:59.4634838Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T13:33:59.4634960Z       "requiredStages": [
2026-06-15T13:33:59.4635068Z         "impl",
2026-06-15T13:33:59.4635169Z         "int"
2026-06-15T13:33:59.4635277Z       ],
2026-06-15T13:33:59.4635390Z       "stages": {
2026-06-15T13:33:59.4635496Z         "doc": {
2026-06-15T13:33:59.4635620Z           "complete": false,
2026-06-15T13:33:59.4635724Z           "evidence": []
2026-06-15T13:33:59.4635825Z         },
2026-06-15T13:33:59.4635935Z         "impl": {
2026-06-15T13:33:59.4636048Z           "complete": true,
2026-06-15T13:33:59.4636168Z           "evidence": [
2026-06-15T13:33:59.4636273Z             {
2026-06-15T13:33:59.4636402Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4636630Z               "line": 100
2026-06-15T13:33:59.4636736Z             },
2026-06-15T13:33:59.4636831Z             {
2026-06-15T13:33:59.4636974Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4637085Z               "line": 111
2026-06-15T13:33:59.4637188Z             },
2026-06-15T13:33:59.4637293Z             {
2026-06-15T13:33:59.4637418Z               "path": "installer/install.sh",
2026-06-15T13:33:59.4637541Z               "line": 79
2026-06-15T13:33:59.4637637Z             }
2026-06-15T13:33:59.4637836Z           ]
2026-06-15T13:33:59.4637940Z         },
2026-06-15T13:33:59.4638046Z         "int": {
2026-06-15T13:33:59.4638170Z           "complete": true,
2026-06-15T13:33:59.4638284Z           "evidence": [
2026-06-15T13:33:59.4638390Z             {
2026-06-15T13:33:59.4638542Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:33:59.4638657Z               "line": 167
2026-06-15T13:33:59.4638757Z             }
2026-06-15T13:33:59.4638861Z           ]
2026-06-15T13:33:59.4639052Z         },
2026-06-15T13:33:59.4639152Z         "unit": {
2026-06-15T13:33:59.4639281Z           "complete": false,
2026-06-15T13:33:59.4639391Z           "evidence": []
2026-06-15T13:33:59.4639495Z         }
2026-06-15T13:33:59.4639601Z       }
2026-06-15T13:33:59.4639701Z     },
2026-06-15T13:33:59.4639805Z     {
2026-06-15T13:33:59.4639925Z       "id": "REQ-INSTALL-4",
2026-06-15T13:33:59.4640617Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T13:33:59.4640746Z       "requiredStages": [
2026-06-15T13:33:59.4640850Z         "impl",
2026-06-15T13:33:59.4640957Z         "unit"
2026-06-15T13:33:59.4641056Z       ],
2026-06-15T13:33:59.4641165Z       "stages": {
2026-06-15T13:33:59.4641257Z         "doc": {
2026-06-15T13:33:59.4641371Z           "complete": false,
2026-06-15T13:33:59.4641480Z           "evidence": []
2026-06-15T13:33:59.4641586Z         },
2026-06-15T13:33:59.4641695Z         "impl": {
2026-06-15T13:33:59.4641814Z           "complete": true,
2026-06-15T13:33:59.4641920Z           "evidence": [
2026-06-15T13:33:59.4642020Z             {
2026-06-15T13:33:59.4642211Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.4642323Z               "line": 154
2026-06-15T13:33:59.4642429Z             },
2026-06-15T13:33:59.4642535Z             {
2026-06-15T13:33:59.4642696Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4642817Z               "line": 29
2026-06-15T13:33:59.4642916Z             },
2026-06-15T13:33:59.4643024Z             {
2026-06-15T13:33:59.4643182Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4643289Z               "line": 275
2026-06-15T13:33:59.4643393Z             },
2026-06-15T13:33:59.4643499Z             {
2026-06-15T13:33:59.4643646Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4643756Z               "line": 339
2026-06-15T13:33:59.4643861Z             },
2026-06-15T13:33:59.4643965Z             {
2026-06-15T13:33:59.4644110Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4644219Z               "line": 369
2026-06-15T13:33:59.4644323Z             },
2026-06-15T13:33:59.4644434Z             {
2026-06-15T13:33:59.4644581Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4644710Z               "line": 401
2026-06-15T13:33:59.4644811Z             },
2026-06-15T13:33:59.4644915Z             {
2026-06-15T13:33:59.4645054Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4645163Z               "line": 4837
2026-06-15T13:33:59.4645277Z             }
2026-06-15T13:33:59.4645373Z           ]
2026-06-15T13:33:59.4645468Z         },
2026-06-15T13:33:59.4645572Z         "int": {
2026-06-15T13:33:59.4645686Z           "complete": false,
2026-06-15T13:33:59.4645908Z           "evidence": []
2026-06-15T13:33:59.4646017Z         },
2026-06-15T13:33:59.4646119Z         "unit": {
2026-06-15T13:33:59.4646246Z           "complete": true,
2026-06-15T13:33:59.4646352Z           "evidence": [
2026-06-15T13:33:59.4646462Z             {
2026-06-15T13:33:59.4646628Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.4646743Z               "line": 335
2026-06-15T13:33:59.4646838Z             },
2026-06-15T13:33:59.4646948Z             {
2026-06-15T13:33:59.4647200Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4647316Z               "line": 763
2026-06-15T13:33:59.4647424Z             },
2026-06-15T13:33:59.4647524Z             {
2026-06-15T13:33:59.4647678Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4647791Z               "line": 804
2026-06-15T13:33:59.4647897Z             },
2026-06-15T13:33:59.4648002Z             {
2026-06-15T13:33:59.4648159Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4648279Z               "line": 824
2026-06-15T13:33:59.4648382Z             },
2026-06-15T13:33:59.4648491Z             {
2026-06-15T13:33:59.4648630Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4648749Z               "line": 6880
2026-06-15T13:33:59.4648844Z             }
2026-06-15T13:33:59.4649021Z           ]
2026-06-15T13:33:59.4649120Z         }
2026-06-15T13:33:59.4649227Z       }
2026-06-15T13:33:59.4649336Z     },
2026-06-15T13:33:59.4649445Z     {
2026-06-15T13:33:59.4649570Z       "id": "REQ-INSTALL-5",
2026-06-15T13:33:59.4650107Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T13:33:59.4650228Z       "requiredStages": [
2026-06-15T13:33:59.4650336Z         "impl",
2026-06-15T13:33:59.4650437Z         "int"
2026-06-15T13:33:59.4650538Z       ],
2026-06-15T13:33:59.4650646Z       "stages": {
2026-06-15T13:33:59.4650755Z         "doc": {
2026-06-15T13:33:59.4650874Z           "complete": false,
2026-06-15T13:33:59.4650982Z           "evidence": []
2026-06-15T13:33:59.4651086Z         },
2026-06-15T13:33:59.4651192Z         "impl": {
2026-06-15T13:33:59.4651306Z           "complete": true,
2026-06-15T13:33:59.4651416Z           "evidence": [
2026-06-15T13:33:59.4651526Z             {
2026-06-15T13:33:59.4651654Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4651769Z               "line": 5
2026-06-15T13:33:59.4651879Z             },
2026-06-15T13:33:59.4651978Z             {
2026-06-15T13:33:59.4652122Z               "path": "installer/install.sh",
2026-06-15T13:33:59.4652231Z               "line": 6
2026-06-15T13:33:59.4652335Z             }
2026-06-15T13:33:59.4652441Z           ]
2026-06-15T13:33:59.4652546Z         },
2026-06-15T13:33:59.4652655Z         "int": {
2026-06-15T13:33:59.4652776Z           "complete": true,
2026-06-15T13:33:59.4652898Z           "evidence": [
2026-06-15T13:33:59.4653009Z             {
2026-06-15T13:33:59.4653157Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T13:33:59.4653275Z               "line": 22
2026-06-15T13:33:59.4653382Z             }
2026-06-15T13:33:59.4653486Z           ]
2026-06-15T13:33:59.4653594Z         },
2026-06-15T13:33:59.4653694Z         "unit": {
2026-06-15T13:33:59.4653817Z           "complete": false,
2026-06-15T13:33:59.4653930Z           "evidence": []
2026-06-15T13:33:59.4654040Z         }
2026-06-15T13:33:59.4654150Z       }
2026-06-15T13:33:59.4654259Z     },
2026-06-15T13:33:59.4654360Z     {
2026-06-15T13:33:59.4654484Z       "id": "REQ-INSTALL-6",
2026-06-15T13:33:59.4655938Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T13:33:59.4656189Z       "requiredStages": [
2026-06-15T13:33:59.4656299Z         "impl",
2026-06-15T13:33:59.4656402Z         "unit"
2026-06-15T13:33:59.4656506Z       ],
2026-06-15T13:33:59.4656607Z       "stages": {
2026-06-15T13:33:59.4656707Z         "doc": {
2026-06-15T13:33:59.4656835Z           "complete": false,
2026-06-15T13:33:59.4656941Z           "evidence": []
2026-06-15T13:33:59.4657050Z         },
2026-06-15T13:33:59.4657270Z         "impl": {
2026-06-15T13:33:59.4657384Z           "complete": true,
2026-06-15T13:33:59.4657503Z           "evidence": [
2026-06-15T13:33:59.4657604Z             {
2026-06-15T13:33:59.4657760Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4657876Z               "line": 59
2026-06-15T13:33:59.4657984Z             },
2026-06-15T13:33:59.4658089Z             {
2026-06-15T13:33:59.4658243Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.4658361Z               "line": 559
2026-06-15T13:33:59.4658467Z             },
2026-06-15T13:33:59.4658576Z             {
2026-06-15T13:33:59.4658733Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4658849Z               "line": 191
2026-06-15T13:33:59.4659023Z             },
2026-06-15T13:33:59.4659123Z             {
2026-06-15T13:33:59.4659267Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4659375Z               "line": 276
2026-06-15T13:33:59.4659500Z             },
2026-06-15T13:33:59.4659610Z             {
2026-06-15T13:33:59.4659753Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:33:59.4659858Z               "line": 42
2026-06-15T13:33:59.4659967Z             },
2026-06-15T13:33:59.4660068Z             {
2026-06-15T13:33:59.4660206Z               "path": "installer/install.sh",
2026-06-15T13:33:59.4660315Z               "line": 104
2026-06-15T13:33:59.4660416Z             }
2026-06-15T13:33:59.4660525Z           ]
2026-06-15T13:33:59.4660625Z         },
2026-06-15T13:33:59.4660726Z         "int": {
2026-06-15T13:33:59.4660831Z           "complete": false,
2026-06-15T13:33:59.4660949Z           "evidence": []
2026-06-15T13:33:59.4661055Z         },
2026-06-15T13:33:59.4661164Z         "unit": {
2026-06-15T13:33:59.4661287Z           "complete": true,
2026-06-15T13:33:59.4661392Z           "evidence": [
2026-06-15T13:33:59.4661495Z             {
2026-06-15T13:33:59.4661646Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T13:33:59.4661767Z               "line": 866
2026-06-15T13:33:59.4661866Z             }
2026-06-15T13:33:59.4661966Z           ]
2026-06-15T13:33:59.4662077Z         }
2026-06-15T13:33:59.4662181Z       }
2026-06-15T13:33:59.4662290Z     },
2026-06-15T13:33:59.4662387Z     {
2026-06-15T13:33:59.4662510Z       "id": "REQ-INSTALL-7",
2026-06-15T13:33:59.4663712Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T13:33:59.4663840Z       "requiredStages": [
2026-06-15T13:33:59.4663951Z         "impl"
2026-06-15T13:33:59.4664055Z       ],
2026-06-15T13:33:59.4664168Z       "stages": {
2026-06-15T13:33:59.4664283Z         "doc": {
2026-06-15T13:33:59.4664405Z           "complete": false,
2026-06-15T13:33:59.4664518Z           "evidence": []
2026-06-15T13:33:59.4664619Z         },
2026-06-15T13:33:59.4664734Z         "impl": {
2026-06-15T13:33:59.4664848Z           "complete": true,
2026-06-15T13:33:59.4664963Z           "evidence": [
2026-06-15T13:33:59.4665067Z             {
2026-06-15T13:33:59.4665196Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4665325Z               "line": 3476
2026-06-15T13:33:59.4665545Z             },
2026-06-15T13:33:59.4665654Z             {
2026-06-15T13:33:59.4665792Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4665912Z               "line": 157
2026-06-15T13:33:59.4666020Z             }
2026-06-15T13:33:59.4666126Z           ]
2026-06-15T13:33:59.4666227Z         },
2026-06-15T13:33:59.4666325Z         "int": {
2026-06-15T13:33:59.4666450Z           "complete": false,
2026-06-15T13:33:59.4666565Z           "evidence": []
2026-06-15T13:33:59.4666664Z         },
2026-06-15T13:33:59.4666883Z         "unit": {
2026-06-15T13:33:59.4666990Z           "complete": false,
2026-06-15T13:33:59.4667109Z           "evidence": []
2026-06-15T13:33:59.4667210Z         }
2026-06-15T13:33:59.4667314Z       }
2026-06-15T13:33:59.4667414Z     },
2026-06-15T13:33:59.4667520Z     {
2026-06-15T13:33:59.4667648Z       "id": "REQ-INSTALL-8",
2026-06-15T13:33:59.4668803Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T13:33:59.4668931Z       "requiredStages": [
2026-06-15T13:33:59.4669114Z         "impl"
2026-06-15T13:33:59.4669221Z       ],
2026-06-15T13:33:59.4669332Z       "stages": {
2026-06-15T13:33:59.4669438Z         "doc": {
2026-06-15T13:33:59.4669559Z           "complete": false,
2026-06-15T13:33:59.4669669Z           "evidence": []
2026-06-15T13:33:59.4669779Z         },
2026-06-15T13:33:59.4669883Z         "impl": {
2026-06-15T13:33:59.4670007Z           "complete": true,
2026-06-15T13:33:59.4670113Z           "evidence": [
2026-06-15T13:33:59.4670217Z             {
2026-06-15T13:33:59.4670366Z               "path": "installer/install.ps1",
2026-06-15T13:33:59.4670466Z               "line": 184
2026-06-15T13:33:59.4670579Z             },
2026-06-15T13:33:59.4670681Z             {
2026-06-15T13:33:59.4670823Z               "path": "installer/install.sh",
2026-06-15T13:33:59.4670947Z               "line": 121
2026-06-15T13:33:59.4671047Z             }
2026-06-15T13:33:59.4671157Z           ]
2026-06-15T13:33:59.4671262Z         },
2026-06-15T13:33:59.4671372Z         "int": {
2026-06-15T13:33:59.4671490Z           "complete": false,
2026-06-15T13:33:59.4671615Z           "evidence": []
2026-06-15T13:33:59.4671720Z         },
2026-06-15T13:33:59.4671837Z         "unit": {
2026-06-15T13:33:59.4671962Z           "complete": false,
2026-06-15T13:33:59.4672074Z           "evidence": []
2026-06-15T13:33:59.4672164Z         }
2026-06-15T13:33:59.4672269Z       }
2026-06-15T13:33:59.4672370Z     },
2026-06-15T13:33:59.4672479Z     {
2026-06-15T13:33:59.4672584Z       "id": "REQ-KICK-1",
2026-06-15T13:33:59.4675223Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T13:33:59.4675359Z       "requiredStages": [
2026-06-15T13:33:59.4675466Z         "doc",
2026-06-15T13:33:59.4675570Z         "impl",
2026-06-15T13:33:59.4675679Z         "unit",
2026-06-15T13:33:59.4675790Z         "int"
2026-06-15T13:33:59.4675999Z       ],
2026-06-15T13:33:59.4676105Z       "stages": {
2026-06-15T13:33:59.4676219Z         "doc": {
2026-06-15T13:33:59.4676342Z           "complete": true,
2026-06-15T13:33:59.4676458Z           "evidence": [
2026-06-15T13:33:59.4676561Z             {
2026-06-15T13:33:59.4676686Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4676801Z               "line": 322
2026-06-15T13:33:59.4676904Z             }
2026-06-15T13:33:59.4677015Z           ]
2026-06-15T13:33:59.4677121Z         },
2026-06-15T13:33:59.4677337Z         "impl": {
2026-06-15T13:33:59.4677452Z           "complete": true,
2026-06-15T13:33:59.4677574Z           "evidence": [
2026-06-15T13:33:59.4677679Z             {
2026-06-15T13:33:59.4677847Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.4677965Z               "line": 41
2026-06-15T13:33:59.4678061Z             },
2026-06-15T13:33:59.4678171Z             {
2026-06-15T13:33:59.4678303Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.4678428Z               "line": 181
2026-06-15T13:33:59.4678537Z             }
2026-06-15T13:33:59.4678638Z           ]
2026-06-15T13:33:59.4678748Z         },
2026-06-15T13:33:59.4678847Z         "int": {
2026-06-15T13:33:59.4679034Z           "complete": true,
2026-06-15T13:33:59.4679143Z           "evidence": [
2026-06-15T13:33:59.4679248Z             {
2026-06-15T13:33:59.4679405Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.4679519Z               "line": 789
2026-06-15T13:33:59.4679625Z             }
2026-06-15T13:33:59.4679730Z           ]
2026-06-15T13:33:59.4679839Z         },
2026-06-15T13:33:59.4679940Z         "unit": {
2026-06-15T13:33:59.4680068Z           "complete": true,
2026-06-15T13:33:59.4680172Z           "evidence": [
2026-06-15T13:33:59.4680277Z             {
2026-06-15T13:33:59.4680439Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.4680553Z               "line": 205
2026-06-15T13:33:59.4680659Z             }
2026-06-15T13:33:59.4680772Z           ]
2026-06-15T13:33:59.4680883Z         }
2026-06-15T13:33:59.4680982Z       }
2026-06-15T13:33:59.4681091Z     },
2026-06-15T13:33:59.4681192Z     {
2026-06-15T13:33:59.4681316Z       "id": "REQ-MANIFEST-1",
2026-06-15T13:33:59.4681551Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T13:33:59.4681678Z       "requiredStages": [
2026-06-15T13:33:59.4681788Z         "doc",
2026-06-15T13:33:59.4681894Z         "impl",
2026-06-15T13:33:59.4681997Z         "unit"
2026-06-15T13:33:59.4682117Z       ],
2026-06-15T13:33:59.4682214Z       "stages": {
2026-06-15T13:33:59.4682322Z         "doc": {
2026-06-15T13:33:59.4682435Z           "complete": true,
2026-06-15T13:33:59.4682550Z           "evidence": [
2026-06-15T13:33:59.4682653Z             {
2026-06-15T13:33:59.4682791Z               "path": "docs/MANIFEST.md",
2026-06-15T13:33:59.4682906Z               "line": 19
2026-06-15T13:33:59.4683010Z             }
2026-06-15T13:33:59.4683115Z           ]
2026-06-15T13:33:59.4683221Z         },
2026-06-15T13:33:59.4683344Z         "impl": {
2026-06-15T13:33:59.4683459Z           "complete": true,
2026-06-15T13:33:59.4683578Z           "evidence": [
2026-06-15T13:33:59.4683678Z             {
2026-06-15T13:33:59.4683822Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4683940Z               "line": 18
2026-06-15T13:33:59.4684040Z             }
2026-06-15T13:33:59.4684146Z           ]
2026-06-15T13:33:59.4684250Z         },
2026-06-15T13:33:59.4684369Z         "int": {
2026-06-15T13:33:59.4684494Z           "complete": false,
2026-06-15T13:33:59.4684608Z           "evidence": []
2026-06-15T13:33:59.4684713Z         },
2026-06-15T13:33:59.4684813Z         "unit": {
2026-06-15T13:33:59.4684932Z           "complete": true,
2026-06-15T13:33:59.4685038Z           "evidence": [
2026-06-15T13:33:59.4685152Z             {
2026-06-15T13:33:59.4685302Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4685525Z               "line": 869
2026-06-15T13:33:59.4685629Z             },
2026-06-15T13:33:59.4685735Z             {
2026-06-15T13:33:59.4685887Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4685992Z               "line": 947
2026-06-15T13:33:59.4686107Z             },
2026-06-15T13:33:59.4686206Z             {
2026-06-15T13:33:59.4686355Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4686474Z               "line": 959
2026-06-15T13:33:59.4686582Z             },
2026-06-15T13:33:59.4686793Z             {
2026-06-15T13:33:59.4686946Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4687056Z               "line": 970
2026-06-15T13:33:59.4687165Z             },
2026-06-15T13:33:59.4687265Z             {
2026-06-15T13:33:59.4687413Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4687527Z               "line": 987
2026-06-15T13:33:59.4687634Z             },
2026-06-15T13:33:59.4687747Z             {
2026-06-15T13:33:59.4687888Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4688012Z               "line": 1001
2026-06-15T13:33:59.4688115Z             },
2026-06-15T13:33:59.4688224Z             {
2026-06-15T13:33:59.4688374Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4688501Z               "line": 1117
2026-06-15T13:33:59.4688607Z             },
2026-06-15T13:33:59.4688712Z             {
2026-06-15T13:33:59.4688863Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4689069Z               "line": 1132
2026-06-15T13:33:59.4689183Z             },
2026-06-15T13:33:59.4689289Z             {
2026-06-15T13:33:59.4689450Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4689566Z               "line": 1243
2026-06-15T13:33:59.4689669Z             },
2026-06-15T13:33:59.4689774Z             {
2026-06-15T13:33:59.4689928Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4690061Z               "line": 1254
2026-06-15T13:33:59.4690167Z             }
2026-06-15T13:33:59.4690276Z           ]
2026-06-15T13:33:59.4690380Z         }
2026-06-15T13:33:59.4690486Z       }
2026-06-15T13:33:59.4690586Z     },
2026-06-15T13:33:59.4690684Z     {
2026-06-15T13:33:59.4690803Z       "id": "REQ-MANIFEST-2",
2026-06-15T13:33:59.4691337Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T13:33:59.4691472Z       "requiredStages": [
2026-06-15T13:33:59.4691571Z         "doc",
2026-06-15T13:33:59.4691675Z         "impl",
2026-06-15T13:33:59.4691781Z         "unit"
2026-06-15T13:33:59.4691881Z       ],
2026-06-15T13:33:59.4691990Z       "stages": {
2026-06-15T13:33:59.4692092Z         "doc": {
2026-06-15T13:33:59.4692214Z           "complete": true,
2026-06-15T13:33:59.4692319Z           "evidence": [
2026-06-15T13:33:59.4692421Z             {
2026-06-15T13:33:59.4692557Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4692663Z               "line": 75
2026-06-15T13:33:59.4692769Z             }
2026-06-15T13:33:59.4692872Z           ]
2026-06-15T13:33:59.4692976Z         },
2026-06-15T13:33:59.4693091Z         "impl": {
2026-06-15T13:33:59.4693208Z           "complete": true,
2026-06-15T13:33:59.4693336Z           "evidence": [
2026-06-15T13:33:59.4693437Z             {
2026-06-15T13:33:59.4693589Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4693704Z               "line": 62
2026-06-15T13:33:59.4693804Z             },
2026-06-15T13:33:59.4693909Z             {
2026-06-15T13:33:59.4694063Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4694167Z               "line": 15
2026-06-15T13:33:59.4694271Z             },
2026-06-15T13:33:59.4694373Z             {
2026-06-15T13:33:59.4694524Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4694639Z               "line": 65
2026-06-15T13:33:59.4694838Z             },
2026-06-15T13:33:59.4694944Z             {
2026-06-15T13:33:59.4695096Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4695206Z               "line": 83
2026-06-15T13:33:59.4695312Z             },
2026-06-15T13:33:59.4695420Z             {
2026-06-15T13:33:59.4695564Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4695684Z               "line": 183
2026-06-15T13:33:59.4695787Z             },
2026-06-15T13:33:59.4696006Z             {
2026-06-15T13:33:59.4696156Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4696276Z               "line": 482
2026-06-15T13:33:59.4696386Z             },
2026-06-15T13:33:59.4696490Z             {
2026-06-15T13:33:59.4696643Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4696752Z               "line": 508
2026-06-15T13:33:59.4696857Z             },
2026-06-15T13:33:59.4696963Z             {
2026-06-15T13:33:59.4697114Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4697240Z               "line": 626
2026-06-15T13:33:59.4697344Z             },
2026-06-15T13:33:59.4697448Z             {
2026-06-15T13:33:59.4697597Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4697720Z               "line": 651
2026-06-15T13:33:59.4697826Z             },
2026-06-15T13:33:59.4697931Z             {
2026-06-15T13:33:59.4698078Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4698189Z               "line": 674
2026-06-15T13:33:59.4698302Z             },
2026-06-15T13:33:59.4698401Z             {
2026-06-15T13:33:59.4698544Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4698656Z               "line": 689
2026-06-15T13:33:59.4698770Z             },
2026-06-15T13:33:59.4698871Z             {
2026-06-15T13:33:59.4699080Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4699196Z               "line": 4987
2026-06-15T13:33:59.4699300Z             },
2026-06-15T13:33:59.4699405Z             {
2026-06-15T13:33:59.4699534Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4699653Z               "line": 5001
2026-06-15T13:33:59.4699763Z             },
2026-06-15T13:33:59.4699868Z             {
2026-06-15T13:33:59.4700005Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4700112Z               "line": 5035
2026-06-15T13:33:59.4700216Z             }
2026-06-15T13:33:59.4700320Z           ]
2026-06-15T13:33:59.4700431Z         },
2026-06-15T13:33:59.4700535Z         "int": {
2026-06-15T13:33:59.4700659Z           "complete": false,
2026-06-15T13:33:59.4700779Z           "evidence": []
2026-06-15T13:33:59.4700883Z         },
2026-06-15T13:33:59.4700978Z         "unit": {
2026-06-15T13:33:59.4704221Z           "complete": true,
2026-06-15T13:33:59.4704379Z           "evidence": [
2026-06-15T13:33:59.4704488Z             {
2026-06-15T13:33:59.4704660Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.4704769Z               "line": 920
2026-06-15T13:33:59.4704875Z             },
2026-06-15T13:33:59.4704980Z             {
2026-06-15T13:33:59.4705136Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4705242Z               "line": 211
2026-06-15T13:33:59.4705346Z             },
2026-06-15T13:33:59.4705442Z             {
2026-06-15T13:33:59.4705586Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4705714Z               "line": 272
2026-06-15T13:33:59.4705819Z             },
2026-06-15T13:33:59.4705925Z             {
2026-06-15T13:33:59.4706076Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4706197Z               "line": 313
2026-06-15T13:33:59.4706300Z             },
2026-06-15T13:33:59.4706404Z             {
2026-06-15T13:33:59.4706557Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4706669Z               "line": 325
2026-06-15T13:33:59.4706913Z             },
2026-06-15T13:33:59.4707016Z             {
2026-06-15T13:33:59.4707170Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4707275Z               "line": 336
2026-06-15T13:33:59.4707379Z             },
2026-06-15T13:33:59.4707485Z             {
2026-06-15T13:33:59.4707632Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4707751Z               "line": 345
2026-06-15T13:33:59.4707852Z             },
2026-06-15T13:33:59.4708066Z             {
2026-06-15T13:33:59.4708213Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4708328Z               "line": 361
2026-06-15T13:33:59.4708434Z             },
2026-06-15T13:33:59.4708538Z             {
2026-06-15T13:33:59.4708696Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4708806Z               "line": 444
2026-06-15T13:33:59.4708909Z             },
2026-06-15T13:33:59.4709076Z             {
2026-06-15T13:33:59.4709245Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4709350Z               "line": 877
2026-06-15T13:33:59.4709456Z             },
2026-06-15T13:33:59.4709560Z             {
2026-06-15T13:33:59.4709708Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4709827Z               "line": 901
2026-06-15T13:33:59.4709931Z             },
2026-06-15T13:33:59.4710033Z             {
2026-06-15T13:33:59.4710185Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4710304Z               "line": 927
2026-06-15T13:33:59.4710409Z             },
2026-06-15T13:33:59.4710509Z             {
2026-06-15T13:33:59.4710652Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4710766Z               "line": 946
2026-06-15T13:33:59.4710876Z             },
2026-06-15T13:33:59.4710972Z             {
2026-06-15T13:33:59.4711123Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4711243Z               "line": 977
2026-06-15T13:33:59.4711349Z             },
2026-06-15T13:33:59.4711448Z             {
2026-06-15T13:33:59.4711592Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.4711720Z               "line": 309
2026-06-15T13:33:59.4711823Z             },
2026-06-15T13:33:59.4711928Z             {
2026-06-15T13:33:59.4712077Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.4712190Z               "line": 486
2026-06-15T13:33:59.4712296Z             },
2026-06-15T13:33:59.4712397Z             {
2026-06-15T13:33:59.4712539Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4712654Z               "line": 7017
2026-06-15T13:33:59.4712758Z             },
2026-06-15T13:33:59.4712858Z             {
2026-06-15T13:33:59.4712992Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4713115Z               "line": 7901
2026-06-15T13:33:59.4713217Z             }
2026-06-15T13:33:59.4713321Z           ]
2026-06-15T13:33:59.4713430Z         }
2026-06-15T13:33:59.4713527Z       }
2026-06-15T13:33:59.4713627Z     },
2026-06-15T13:33:59.4713731Z     {
2026-06-15T13:33:59.4713861Z       "id": "REQ-MANIFEST-3",
2026-06-15T13:33:59.4714581Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T13:33:59.4714709Z       "requiredStages": [
2026-06-15T13:33:59.4714829Z         "doc",
2026-06-15T13:33:59.4714939Z         "impl",
2026-06-15T13:33:59.4715038Z         "unit"
2026-06-15T13:33:59.4715139Z       ],
2026-06-15T13:33:59.4715244Z       "stages": {
2026-06-15T13:33:59.4715348Z         "doc": {
2026-06-15T13:33:59.4715473Z           "complete": true,
2026-06-15T13:33:59.4715592Z           "evidence": [
2026-06-15T13:33:59.4715687Z             {
2026-06-15T13:33:59.4715812Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4715916Z               "line": 81
2026-06-15T13:33:59.4716132Z             }
2026-06-15T13:33:59.4716235Z           ]
2026-06-15T13:33:59.4716345Z         },
2026-06-15T13:33:59.4716456Z         "impl": {
2026-06-15T13:33:59.4716578Z           "complete": true,
2026-06-15T13:33:59.4716694Z           "evidence": [
2026-06-15T13:33:59.4716805Z             {
2026-06-15T13:33:59.4716969Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4717074Z               "line": 72
2026-06-15T13:33:59.4717177Z             },
2026-06-15T13:33:59.4717381Z             {
2026-06-15T13:33:59.4717543Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4717662Z               "line": 101
2026-06-15T13:33:59.4717768Z             },
2026-06-15T13:33:59.4717872Z             {
2026-06-15T13:33:59.4718021Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4718140Z               "line": 132
2026-06-15T13:33:59.4718239Z             },
2026-06-15T13:33:59.4718345Z             {
2026-06-15T13:33:59.4718497Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4718611Z               "line": 532
2026-06-15T13:33:59.4718708Z             },
2026-06-15T13:33:59.4718811Z             {
2026-06-15T13:33:59.4719028Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4719140Z               "line": 588
2026-06-15T13:33:59.4719236Z             },
2026-06-15T13:33:59.4719343Z             {
2026-06-15T13:33:59.4719479Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4719607Z               "line": 5048
2026-06-15T13:33:59.4719706Z             },
2026-06-15T13:33:59.4719805Z             {
2026-06-15T13:33:59.4719943Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4720049Z               "line": 5074
2026-06-15T13:33:59.4720158Z             }
2026-06-15T13:33:59.4720258Z           ]
2026-06-15T13:33:59.4720368Z         },
2026-06-15T13:33:59.4720472Z         "int": {
2026-06-15T13:33:59.4720593Z           "complete": false,
2026-06-15T13:33:59.4720707Z           "evidence": []
2026-06-15T13:33:59.4720811Z         },
2026-06-15T13:33:59.4720917Z         "unit": {
2026-06-15T13:33:59.4721031Z           "complete": true,
2026-06-15T13:33:59.4721154Z           "evidence": [
2026-06-15T13:33:59.4721251Z             {
2026-06-15T13:33:59.4721412Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4721527Z               "line": 371
2026-06-15T13:33:59.4721627Z             },
2026-06-15T13:33:59.4721732Z             {
2026-06-15T13:33:59.4721876Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4721998Z               "line": 429
2026-06-15T13:33:59.4722103Z             },
2026-06-15T13:33:59.4722210Z             {
2026-06-15T13:33:59.4722355Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4722469Z               "line": 1001
2026-06-15T13:33:59.4722566Z             },
2026-06-15T13:33:59.4722670Z             {
2026-06-15T13:33:59.4722813Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4722932Z               "line": 7072
2026-06-15T13:33:59.4723037Z             }
2026-06-15T13:33:59.4723143Z           ]
2026-06-15T13:33:59.4723247Z         }
2026-06-15T13:33:59.4723352Z       }
2026-06-15T13:33:59.4723452Z     },
2026-06-15T13:33:59.4723552Z     {
2026-06-15T13:33:59.4723671Z       "id": "REQ-MANIFEST-4",
2026-06-15T13:33:59.4724416Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T13:33:59.4724548Z       "requiredStages": [
2026-06-15T13:33:59.4724657Z         "doc",
2026-06-15T13:33:59.4724757Z         "impl",
2026-06-15T13:33:59.4724861Z         "unit"
2026-06-15T13:33:59.4724969Z       ],
2026-06-15T13:33:59.4725079Z       "stages": {
2026-06-15T13:33:59.4725181Z         "doc": {
2026-06-15T13:33:59.4725413Z           "complete": true,
2026-06-15T13:33:59.4725528Z           "evidence": [
2026-06-15T13:33:59.4725627Z             {
2026-06-15T13:33:59.4725748Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4725866Z               "line": 88
2026-06-15T13:33:59.4725966Z             }
2026-06-15T13:33:59.4726072Z           ]
2026-06-15T13:33:59.4726176Z         },
2026-06-15T13:33:59.4726281Z         "impl": {
2026-06-15T13:33:59.4726396Z           "complete": true,
2026-06-15T13:33:59.4726501Z           "evidence": [
2026-06-15T13:33:59.4726711Z             {
2026-06-15T13:33:59.4726872Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4726983Z               "line": 80
2026-06-15T13:33:59.4727087Z             },
2026-06-15T13:33:59.4727187Z             {
2026-06-15T13:33:59.4727331Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4727448Z               "line": 152
2026-06-15T13:33:59.4727553Z             },
2026-06-15T13:33:59.4727653Z             {
2026-06-15T13:33:59.4727808Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4727913Z               "line": 83
2026-06-15T13:33:59.4728018Z             },
2026-06-15T13:33:59.4728118Z             {
2026-06-15T13:33:59.4728271Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4728391Z               "line": 505
2026-06-15T13:33:59.4728494Z             },
2026-06-15T13:33:59.4728596Z             {
2026-06-15T13:33:59.4728738Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4728857Z               "line": 530
2026-06-15T13:33:59.4729024Z             }
2026-06-15T13:33:59.4729124Z           ]
2026-06-15T13:33:59.4729230Z         },
2026-06-15T13:33:59.4729334Z         "int": {
2026-06-15T13:33:59.4729448Z           "complete": false,
2026-06-15T13:33:59.4729559Z           "evidence": []
2026-06-15T13:33:59.4729658Z         },
2026-06-15T13:33:59.4729763Z         "unit": {
2026-06-15T13:33:59.4729874Z           "complete": true,
2026-06-15T13:33:59.4729996Z           "evidence": [
2026-06-15T13:33:59.4730091Z             {
2026-06-15T13:33:59.4730244Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4730360Z               "line": 1067
2026-06-15T13:33:59.4730465Z             },
2026-06-15T13:33:59.4730566Z             {
2026-06-15T13:33:59.4730713Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4730818Z               "line": 1100
2026-06-15T13:33:59.4730928Z             },
2026-06-15T13:33:59.4731032Z             {
2026-06-15T13:33:59.4731177Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4731281Z               "line": 862
2026-06-15T13:33:59.4731385Z             }
2026-06-15T13:33:59.4731492Z           ]
2026-06-15T13:33:59.4731595Z         }
2026-06-15T13:33:59.4731696Z       }
2026-06-15T13:33:59.4731797Z     },
2026-06-15T13:33:59.4731900Z     {
2026-06-15T13:33:59.4732025Z       "id": "REQ-MANIFEST-5",
2026-06-15T13:33:59.4735033Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T13:33:59.4735308Z       "requiredStages": [
2026-06-15T13:33:59.4735407Z         "doc",
2026-06-15T13:33:59.4735515Z         "impl",
2026-06-15T13:33:59.4735616Z         "unit"
2026-06-15T13:33:59.4735721Z       ],
2026-06-15T13:33:59.4735825Z       "stages": {
2026-06-15T13:33:59.4735930Z         "doc": {
2026-06-15T13:33:59.4736050Z           "complete": true,
2026-06-15T13:33:59.4736163Z           "evidence": [
2026-06-15T13:33:59.4736270Z             {
2026-06-15T13:33:59.4736393Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4736608Z               "line": 83
2026-06-15T13:33:59.4736717Z             }
2026-06-15T13:33:59.4736816Z           ]
2026-06-15T13:33:59.4736913Z         },
2026-06-15T13:33:59.4737008Z         "impl": {
2026-06-15T13:33:59.4737126Z           "complete": true,
2026-06-15T13:33:59.4737233Z           "evidence": [
2026-06-15T13:33:59.4737337Z             {
2026-06-15T13:33:59.4737485Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4737605Z               "line": 120
2026-06-15T13:33:59.4737713Z             }
2026-06-15T13:33:59.4737814Z           ]
2026-06-15T13:33:59.4737925Z         },
2026-06-15T13:33:59.4738027Z         "int": {
2026-06-15T13:33:59.4738141Z           "complete": false,
2026-06-15T13:33:59.4738251Z           "evidence": []
2026-06-15T13:33:59.4738345Z         },
2026-06-15T13:33:59.4738453Z         "unit": {
2026-06-15T13:33:59.4738560Z           "complete": true,
2026-06-15T13:33:59.4738669Z           "evidence": [
2026-06-15T13:33:59.4738768Z             {
2026-06-15T13:33:59.4738931Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T13:33:59.4739137Z               "line": 404
2026-06-15T13:33:59.4739241Z             },
2026-06-15T13:33:59.4739340Z             {
2026-06-15T13:33:59.4739485Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4739603Z               "line": 1074
2026-06-15T13:33:59.4739698Z             },
2026-06-15T13:33:59.4739795Z             {
2026-06-15T13:33:59.4739941Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4740056Z               "line": 1103
2026-06-15T13:33:59.4740157Z             },
2026-06-15T13:33:59.4740256Z             {
2026-06-15T13:33:59.4740401Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4740510Z               "line": 1143
2026-06-15T13:33:59.4740613Z             },
2026-06-15T13:33:59.4740718Z             {
2026-06-15T13:33:59.4740860Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4740978Z               "line": 1158
2026-06-15T13:33:59.4741083Z             }
2026-06-15T13:33:59.4741184Z           ]
2026-06-15T13:33:59.4741287Z         }
2026-06-15T13:33:59.4741388Z       }
2026-06-15T13:33:59.4741493Z     },
2026-06-15T13:33:59.4741588Z     {
2026-06-15T13:33:59.4741713Z       "id": "REQ-MANIFEST-6",
2026-06-15T13:33:59.4743967Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T13:33:59.4744105Z       "requiredStages": [
2026-06-15T13:33:59.4744204Z         "doc",
2026-06-15T13:33:59.4744310Z         "unit"
2026-06-15T13:33:59.4744410Z       ],
2026-06-15T13:33:59.4744514Z       "stages": {
2026-06-15T13:33:59.4744621Z         "doc": {
2026-06-15T13:33:59.4744744Z           "complete": true,
2026-06-15T13:33:59.4744858Z           "evidence": [
2026-06-15T13:33:59.4744959Z             {
2026-06-15T13:33:59.4745193Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4745307Z               "line": 139
2026-06-15T13:33:59.4745411Z             }
2026-06-15T13:33:59.4745512Z           ]
2026-06-15T13:33:59.4745617Z         },
2026-06-15T13:33:59.4745721Z         "impl": {
2026-06-15T13:33:59.4745839Z           "complete": false,
2026-06-15T13:33:59.4745953Z           "evidence": []
2026-06-15T13:33:59.4746057Z         },
2026-06-15T13:33:59.4746161Z         "int": {
2026-06-15T13:33:59.4746272Z           "complete": false,
2026-06-15T13:33:59.4746495Z           "evidence": []
2026-06-15T13:33:59.4746601Z         },
2026-06-15T13:33:59.4746695Z         "unit": {
2026-06-15T13:33:59.4746800Z           "complete": true,
2026-06-15T13:33:59.4746915Z           "evidence": [
2026-06-15T13:33:59.4747019Z             {
2026-06-15T13:33:59.4747159Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T13:33:59.4747263Z               "line": 1180
2026-06-15T13:33:59.4747367Z             }
2026-06-15T13:33:59.4747479Z           ]
2026-06-15T13:33:59.4747578Z         }
2026-06-15T13:33:59.4747678Z       }
2026-06-15T13:33:59.4747779Z     },
2026-06-15T13:33:59.4747883Z     {
2026-06-15T13:33:59.4748002Z       "id": "REQ-MANIFEST-7",
2026-06-15T13:33:59.4751216Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T13:33:59.4751354Z       "requiredStages": [
2026-06-15T13:33:59.4751453Z         "doc",
2026-06-15T13:33:59.4751552Z         "impl",
2026-06-15T13:33:59.4751652Z         "unit"
2026-06-15T13:33:59.4751754Z       ],
2026-06-15T13:33:59.4751867Z       "stages": {
2026-06-15T13:33:59.4751968Z         "doc": {
2026-06-15T13:33:59.4752092Z           "complete": true,
2026-06-15T13:33:59.4752210Z           "evidence": [
2026-06-15T13:33:59.4752316Z             {
2026-06-15T13:33:59.4752453Z               "path": "docs/MANIFEST.md",
2026-06-15T13:33:59.4752559Z               "line": 34
2026-06-15T13:33:59.4752668Z             }
2026-06-15T13:33:59.4752773Z           ]
2026-06-15T13:33:59.4752873Z         },
2026-06-15T13:33:59.4752974Z         "impl": {
2026-06-15T13:33:59.4753101Z           "complete": true,
2026-06-15T13:33:59.4753227Z           "evidence": [
2026-06-15T13:33:59.4753331Z             {
2026-06-15T13:33:59.4753488Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:33:59.4753599Z               "line": 54
2026-06-15T13:33:59.4753692Z             }
2026-06-15T13:33:59.4753789Z           ]
2026-06-15T13:33:59.4753885Z         },
2026-06-15T13:33:59.4753993Z         "int": {
2026-06-15T13:33:59.4754111Z           "complete": false,
2026-06-15T13:33:59.4754227Z           "evidence": []
2026-06-15T13:33:59.4754331Z         },
2026-06-15T13:33:59.4754445Z         "unit": {
2026-06-15T13:33:59.4754560Z           "complete": true,
2026-06-15T13:33:59.4754665Z           "evidence": [
2026-06-15T13:33:59.4754769Z             {
2026-06-15T13:33:59.4754918Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.4755032Z               "line": 1260
2026-06-15T13:33:59.4755133Z             }
2026-06-15T13:33:59.4755247Z           ]
2026-06-15T13:33:59.4755457Z         }
2026-06-15T13:33:59.4755561Z       }
2026-06-15T13:33:59.4755666Z     },
2026-06-15T13:33:59.4755767Z     {
2026-06-15T13:33:59.4755890Z       "id": "REQ-MESH-1",
2026-06-15T13:33:59.4758067Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T13:33:59.4758300Z       "requiredStages": [
2026-06-15T13:33:59.4758405Z         "impl",
2026-06-15T13:33:59.4758514Z         "unit",
2026-06-15T13:33:59.4758615Z         "int"
2026-06-15T13:33:59.4758711Z       ],
2026-06-15T13:33:59.4758824Z       "stages": {
2026-06-15T13:33:59.4758925Z         "doc": {
2026-06-15T13:33:59.4759110Z           "complete": false,
2026-06-15T13:33:59.4759228Z           "evidence": []
2026-06-15T13:33:59.4759324Z         },
2026-06-15T13:33:59.4759422Z         "impl": {
2026-06-15T13:33:59.4759535Z           "complete": true,
2026-06-15T13:33:59.4759646Z           "evidence": [
2026-06-15T13:33:59.4759761Z             {
2026-06-15T13:33:59.4759917Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.4760042Z               "line": 771
2026-06-15T13:33:59.4760146Z             },
2026-06-15T13:33:59.4760257Z             {
2026-06-15T13:33:59.4760414Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4760533Z               "line": 38
2026-06-15T13:33:59.4760629Z             },
2026-06-15T13:33:59.4760718Z             {
2026-06-15T13:33:59.4760876Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4760986Z               "line": 161
2026-06-15T13:33:59.4761095Z             },
2026-06-15T13:33:59.4761196Z             {
2026-06-15T13:33:59.4761357Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4761477Z               "line": 206
2026-06-15T13:33:59.4761583Z             },
2026-06-15T13:33:59.4761696Z             {
2026-06-15T13:33:59.4761843Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4761957Z               "line": 57
2026-06-15T13:33:59.4762060Z             },
2026-06-15T13:33:59.4762165Z             {
2026-06-15T13:33:59.4762332Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4762441Z               "line": 24
2026-06-15T13:33:59.4762552Z             },
2026-06-15T13:33:59.4762657Z             {
2026-06-15T13:33:59.4762824Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4762937Z               "line": 142
2026-06-15T13:33:59.4763046Z             },
2026-06-15T13:33:59.4763143Z             {
2026-06-15T13:33:59.4763295Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4763414Z               "line": 162
2026-06-15T13:33:59.4763511Z             }
2026-06-15T13:33:59.4763610Z           ]
2026-06-15T13:33:59.4763719Z         },
2026-06-15T13:33:59.4763825Z         "int": {
2026-06-15T13:33:59.4763948Z           "complete": true,
2026-06-15T13:33:59.4764058Z           "evidence": [
2026-06-15T13:33:59.4764164Z             {
2026-06-15T13:33:59.4764329Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:33:59.4764440Z               "line": 67
2026-06-15T13:33:59.4764540Z             },
2026-06-15T13:33:59.4764643Z             {
2026-06-15T13:33:59.4764811Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:33:59.4764924Z               "line": 93
2026-06-15T13:33:59.4765140Z             },
2026-06-15T13:33:59.4765239Z             {
2026-06-15T13:33:59.4765398Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:33:59.4765517Z               "line": 117
2026-06-15T13:33:59.4765616Z             },
2026-06-15T13:33:59.4765722Z             {
2026-06-15T13:33:59.4765878Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T13:33:59.4765998Z               "line": 134
2026-06-15T13:33:59.4766098Z             }
2026-06-15T13:33:59.4766193Z           ]
2026-06-15T13:33:59.4766395Z         },
2026-06-15T13:33:59.4766507Z         "unit": {
2026-06-15T13:33:59.4766627Z           "complete": true,
2026-06-15T13:33:59.4766733Z           "evidence": [
2026-06-15T13:33:59.4766836Z             {
2026-06-15T13:33:59.4766983Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4767101Z               "line": 427
2026-06-15T13:33:59.4767205Z             },
2026-06-15T13:33:59.4767300Z             {
2026-06-15T13:33:59.4767467Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4767582Z               "line": 376
2026-06-15T13:33:59.4767683Z             },
2026-06-15T13:33:59.4767787Z             {
2026-06-15T13:33:59.4767950Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4768069Z               "line": 412
2026-06-15T13:33:59.4768173Z             },
2026-06-15T13:33:59.4768279Z             {
2026-06-15T13:33:59.4768435Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4768555Z               "line": 427
2026-06-15T13:33:59.4768655Z             },
2026-06-15T13:33:59.4768759Z             {
2026-06-15T13:33:59.4768918Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4769084Z               "line": 438
2026-06-15T13:33:59.4769190Z             },
2026-06-15T13:33:59.4769285Z             {
2026-06-15T13:33:59.4769451Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4769562Z               "line": 449
2026-06-15T13:33:59.4769670Z             },
2026-06-15T13:33:59.4769769Z             {
2026-06-15T13:33:59.4769917Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4770034Z               "line": 460
2026-06-15T13:33:59.4770139Z             },
2026-06-15T13:33:59.4770245Z             {
2026-06-15T13:33:59.4770406Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4770517Z               "line": 496
2026-06-15T13:33:59.4770626Z             },
2026-06-15T13:33:59.4770730Z             {
2026-06-15T13:33:59.4770893Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4770997Z               "line": 519
2026-06-15T13:33:59.4771103Z             },
2026-06-15T13:33:59.4771208Z             {
2026-06-15T13:33:59.4771360Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4771466Z               "line": 546
2026-06-15T13:33:59.4771574Z             }
2026-06-15T13:33:59.4771684Z           ]
2026-06-15T13:33:59.4771776Z         }
2026-06-15T13:33:59.4771880Z       }
2026-06-15T13:33:59.4771985Z     },
2026-06-15T13:33:59.4772091Z     {
2026-06-15T13:33:59.4772209Z       "id": "REQ-MESH-2",
2026-06-15T13:33:59.4774904Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T13:33:59.4775160Z       "requiredStages": [
2026-06-15T13:33:59.4775275Z         "impl",
2026-06-15T13:33:59.4775376Z         "unit",
2026-06-15T13:33:59.4775485Z         "int"
2026-06-15T13:33:59.4775589Z       ],
2026-06-15T13:33:59.4775700Z       "stages": {
2026-06-15T13:33:59.4775813Z         "doc": {
2026-06-15T13:33:59.4775934Z           "complete": false,
2026-06-15T13:33:59.4776147Z           "evidence": []
2026-06-15T13:33:59.4776248Z         },
2026-06-15T13:33:59.4776358Z         "impl": {
2026-06-15T13:33:59.4776476Z           "complete": true,
2026-06-15T13:33:59.4776596Z           "evidence": [
2026-06-15T13:33:59.4776700Z             {
2026-06-15T13:33:59.4776849Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.4776964Z               "line": 660
2026-06-15T13:33:59.4777067Z             },
2026-06-15T13:33:59.4777177Z             {
2026-06-15T13:33:59.4777330Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4777444Z               "line": 118
2026-06-15T13:33:59.4777553Z             },
2026-06-15T13:33:59.4777643Z             {
2026-06-15T13:33:59.4777807Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4777928Z               "line": 347
2026-06-15T13:33:59.4778037Z             },
2026-06-15T13:33:59.4778152Z             {
2026-06-15T13:33:59.4778300Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4778409Z               "line": 389
2026-06-15T13:33:59.4778510Z             },
2026-06-15T13:33:59.4778614Z             {
2026-06-15T13:33:59.4778766Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4778882Z               "line": 403
2026-06-15T13:33:59.4779043Z             },
2026-06-15T13:33:59.4779154Z             {
2026-06-15T13:33:59.4779306Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4779410Z               "line": 492
2026-06-15T13:33:59.4779516Z             },
2026-06-15T13:33:59.4779620Z             {
2026-06-15T13:33:59.4779769Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4779892Z               "line": 507
2026-06-15T13:33:59.4779997Z             },
2026-06-15T13:33:59.4780103Z             {
2026-06-15T13:33:59.4780249Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4780367Z               "line": 534
2026-06-15T13:33:59.4780473Z             },
2026-06-15T13:33:59.4780580Z             {
2026-06-15T13:33:59.4780742Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4780857Z               "line": 207
2026-06-15T13:33:59.4780966Z             },
2026-06-15T13:33:59.4781072Z             {
2026-06-15T13:33:59.4781224Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4781333Z               "line": 755
2026-06-15T13:33:59.4781444Z             },
2026-06-15T13:33:59.4781557Z             {
2026-06-15T13:33:59.4781711Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4781815Z               "line": 816
2026-06-15T13:33:59.4781925Z             },
2026-06-15T13:33:59.4782031Z             {
2026-06-15T13:33:59.4782182Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4782297Z               "line": 869
2026-06-15T13:33:59.4782407Z             },
2026-06-15T13:33:59.4782501Z             {
2026-06-15T13:33:59.4782670Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4782778Z               "line": 891
2026-06-15T13:33:59.4782887Z             },
2026-06-15T13:33:59.4782987Z             {
2026-06-15T13:33:59.4783137Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4783256Z               "line": 122
2026-06-15T13:33:59.4783362Z             },
2026-06-15T13:33:59.4783462Z             {
2026-06-15T13:33:59.4783614Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4783824Z               "line": 44
2026-06-15T13:33:59.4783929Z             },
2026-06-15T13:33:59.4784034Z             {
2026-06-15T13:33:59.4784185Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4784301Z               "line": 184
2026-06-15T13:33:59.4784401Z             },
2026-06-15T13:33:59.4784505Z             {
2026-06-15T13:33:59.4784649Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4784768Z               "line": 211
2026-06-15T13:33:59.4784964Z             },
2026-06-15T13:33:59.4785068Z             {
2026-06-15T13:33:59.4785208Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4785326Z               "line": 251
2026-06-15T13:33:59.4785431Z             },
2026-06-15T13:33:59.4785542Z             {
2026-06-15T13:33:59.4785688Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4785806Z               "line": 275
2026-06-15T13:33:59.4785912Z             },
2026-06-15T13:33:59.4786017Z             {
2026-06-15T13:33:59.4786169Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4786284Z               "line": 289
2026-06-15T13:33:59.4786397Z             },
2026-06-15T13:33:59.4786504Z             {
2026-06-15T13:33:59.4786651Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4786770Z               "line": 300
2026-06-15T13:33:59.4786866Z             },
2026-06-15T13:33:59.4786975Z             {
2026-06-15T13:33:59.4787123Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4787242Z               "line": 313
2026-06-15T13:33:59.4787351Z             }
2026-06-15T13:33:59.4787458Z           ]
2026-06-15T13:33:59.4787562Z         },
2026-06-15T13:33:59.4787666Z         "int": {
2026-06-15T13:33:59.4787796Z           "complete": true,
2026-06-15T13:33:59.4787904Z           "evidence": [
2026-06-15T13:33:59.4788009Z             {
2026-06-15T13:33:59.4788175Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T13:33:59.4788287Z               "line": 116
2026-06-15T13:33:59.4788397Z             },
2026-06-15T13:33:59.4788493Z             {
2026-06-15T13:33:59.4788664Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T13:33:59.4788779Z               "line": 181
2026-06-15T13:33:59.4788879Z             }
2026-06-15T13:33:59.4789104Z           ]
2026-06-15T13:33:59.4789222Z         },
2026-06-15T13:33:59.4789341Z         "unit": {
2026-06-15T13:33:59.4789470Z           "complete": true,
2026-06-15T13:33:59.4789617Z           "evidence": [
2026-06-15T13:33:59.4789714Z             {
2026-06-15T13:33:59.4789889Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4790010Z               "line": 999
2026-06-15T13:33:59.4790114Z             },
2026-06-15T13:33:59.4790218Z             {
2026-06-15T13:33:59.4790373Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4790499Z               "line": 1016
2026-06-15T13:33:59.4790605Z             },
2026-06-15T13:33:59.4790711Z             {
2026-06-15T13:33:59.4790871Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4790985Z               "line": 1024
2026-06-15T13:33:59.4791094Z             },
2026-06-15T13:33:59.4791197Z             {
2026-06-15T13:33:59.4791355Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4791469Z               "line": 1048
2026-06-15T13:33:59.4791574Z             },
2026-06-15T13:33:59.4791689Z             {
2026-06-15T13:33:59.4791850Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.4791961Z               "line": 1499
2026-06-15T13:33:59.4792071Z             },
2026-06-15T13:33:59.4792179Z             {
2026-06-15T13:33:59.4792323Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4792442Z               "line": 347
2026-06-15T13:33:59.4792532Z             },
2026-06-15T13:33:59.4792634Z             {
2026-06-15T13:33:59.4792891Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4792995Z               "line": 370
2026-06-15T13:33:59.4793100Z             },
2026-06-15T13:33:59.4793201Z             {
2026-06-15T13:33:59.4793343Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4793451Z               "line": 407
2026-06-15T13:33:59.4793557Z             },
2026-06-15T13:33:59.4793665Z             {
2026-06-15T13:33:59.4793811Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4794022Z               "line": 431
2026-06-15T13:33:59.4794126Z             },
2026-06-15T13:33:59.4794232Z             {
2026-06-15T13:33:59.4794379Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4794489Z               "line": 483
2026-06-15T13:33:59.4794599Z             },
2026-06-15T13:33:59.4794698Z             {
2026-06-15T13:33:59.4794843Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4794956Z               "line": 499
2026-06-15T13:33:59.4795056Z             },
2026-06-15T13:33:59.4795167Z             {
2026-06-15T13:33:59.4795309Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4795429Z               "line": 514
2026-06-15T13:33:59.4795529Z             },
2026-06-15T13:33:59.4795638Z             {
2026-06-15T13:33:59.4798890Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4799111Z               "line": 531
2026-06-15T13:33:59.4799214Z             }
2026-06-15T13:33:59.4799329Z           ]
2026-06-15T13:33:59.4799439Z         }
2026-06-15T13:33:59.4799543Z       }
2026-06-15T13:33:59.4799640Z     },
2026-06-15T13:33:59.4799749Z     {
2026-06-15T13:33:59.4799867Z       "id": "REQ-MESH-3",
2026-06-15T13:33:59.4801714Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T13:33:59.4801849Z       "requiredStages": [
2026-06-15T13:33:59.4801944Z         "impl",
2026-06-15T13:33:59.4802057Z         "unit",
2026-06-15T13:33:59.4802153Z         "int"
2026-06-15T13:33:59.4802268Z       ],
2026-06-15T13:33:59.4802367Z       "stages": {
2026-06-15T13:33:59.4802473Z         "doc": {
2026-06-15T13:33:59.4802597Z           "complete": false,
2026-06-15T13:33:59.4802715Z           "evidence": []
2026-06-15T13:33:59.4802821Z         },
2026-06-15T13:33:59.4802930Z         "impl": {
2026-06-15T13:33:59.4803050Z           "complete": true,
2026-06-15T13:33:59.4803170Z           "evidence": [
2026-06-15T13:33:59.4803269Z             {
2026-06-15T13:33:59.4803432Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4803546Z               "line": 641
2026-06-15T13:33:59.4803646Z             }
2026-06-15T13:33:59.4803752Z           ]
2026-06-15T13:33:59.4803852Z         },
2026-06-15T13:33:59.4803950Z         "int": {
2026-06-15T13:33:59.4804074Z           "complete": true,
2026-06-15T13:33:59.4804188Z           "evidence": [
2026-06-15T13:33:59.4804291Z             {
2026-06-15T13:33:59.4804449Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T13:33:59.4804568Z               "line": 373
2026-06-15T13:33:59.4804672Z             },
2026-06-15T13:33:59.4804769Z             {
2026-06-15T13:33:59.4804915Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T13:33:59.4805025Z               "line": 436
2026-06-15T13:33:59.4805130Z             }
2026-06-15T13:33:59.4805244Z           ]
2026-06-15T13:33:59.4805350Z         },
2026-06-15T13:33:59.4805459Z         "unit": {
2026-06-15T13:33:59.4805708Z           "complete": true,
2026-06-15T13:33:59.4805826Z           "evidence": [
2026-06-15T13:33:59.4805931Z             {
2026-06-15T13:33:59.4806089Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.4806198Z               "line": 910
2026-06-15T13:33:59.4806299Z             }
2026-06-15T13:33:59.4806399Z           ]
2026-06-15T13:33:59.4806498Z         }
2026-06-15T13:33:59.4806604Z       }
2026-06-15T13:33:59.4806705Z     },
2026-06-15T13:33:59.4806808Z     {
2026-06-15T13:33:59.4807047Z       "id": "REQ-MESH-4",
2026-06-15T13:33:59.4809455Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T13:33:59.4809579Z       "requiredStages": [
2026-06-15T13:33:59.4809684Z         "impl",
2026-06-15T13:33:59.4809789Z         "unit",
2026-06-15T13:33:59.4809894Z         "int"
2026-06-15T13:33:59.4809995Z       ],
2026-06-15T13:33:59.4810113Z       "stages": {
2026-06-15T13:33:59.4810214Z         "doc": {
2026-06-15T13:33:59.4810338Z           "complete": false,
2026-06-15T13:33:59.4810452Z           "evidence": []
2026-06-15T13:33:59.4810553Z         },
2026-06-15T13:33:59.4810662Z         "impl": {
2026-06-15T13:33:59.4810781Z           "complete": true,
2026-06-15T13:33:59.4810901Z           "evidence": [
2026-06-15T13:33:59.4811005Z             {
2026-06-15T13:33:59.4811173Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.4811290Z               "line": 33
2026-06-15T13:33:59.4811396Z             },
2026-06-15T13:33:59.4811497Z             {
2026-06-15T13:33:59.4811654Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4811764Z               "line": 68
2026-06-15T13:33:59.4811878Z             },
2026-06-15T13:33:59.4811972Z             {
2026-06-15T13:33:59.4812129Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4812247Z               "line": 111
2026-06-15T13:33:59.4812351Z             },
2026-06-15T13:33:59.4812456Z             {
2026-06-15T13:33:59.4812613Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4812718Z               "line": 462
2026-06-15T13:33:59.4812814Z             },
2026-06-15T13:33:59.4812919Z             {
2026-06-15T13:33:59.4813062Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4813181Z               "line": 711
2026-06-15T13:33:59.4813290Z             },
2026-06-15T13:33:59.4813396Z             {
2026-06-15T13:33:59.4813548Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4813657Z               "line": 725
2026-06-15T13:33:59.4813759Z             },
2026-06-15T13:33:59.4813862Z             {
2026-06-15T13:33:59.4814007Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.4814111Z               "line": 132
2026-06-15T13:33:59.4814215Z             },
2026-06-15T13:33:59.4814322Z             {
2026-06-15T13:33:59.4814472Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4814591Z               "line": 26
2026-06-15T13:33:59.4814691Z             },
2026-06-15T13:33:59.4814790Z             {
2026-06-15T13:33:59.4814936Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4815042Z               "line": 97
2026-06-15T13:33:59.4815146Z             },
2026-06-15T13:33:59.4815246Z             {
2026-06-15T13:33:59.4815494Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4815605Z               "line": 119
2026-06-15T13:33:59.4815705Z             },
2026-06-15T13:33:59.4815804Z             {
2026-06-15T13:33:59.4815944Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4816052Z               "line": 82
2026-06-15T13:33:59.4816152Z             },
2026-06-15T13:33:59.4816263Z             {
2026-06-15T13:33:59.4816406Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4816612Z               "line": 111
2026-06-15T13:33:59.4816724Z             },
2026-06-15T13:33:59.4816825Z             {
2026-06-15T13:33:59.4816964Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4817078Z               "line": 232
2026-06-15T13:33:59.4817174Z             },
2026-06-15T13:33:59.4817275Z             {
2026-06-15T13:33:59.4817425Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4817539Z               "line": 245
2026-06-15T13:33:59.4817645Z             },
2026-06-15T13:33:59.4817749Z             {
2026-06-15T13:33:59.4817883Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4817998Z               "line": 4214
2026-06-15T13:33:59.4818092Z             }
2026-06-15T13:33:59.4818194Z           ]
2026-06-15T13:33:59.4818303Z         },
2026-06-15T13:33:59.4818402Z         "int": {
2026-06-15T13:33:59.4818528Z           "complete": true,
2026-06-15T13:33:59.4818636Z           "evidence": [
2026-06-15T13:33:59.4818741Z             {
2026-06-15T13:33:59.4818884Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T13:33:59.4819070Z               "line": 98
2026-06-15T13:33:59.4819176Z             },
2026-06-15T13:33:59.4819279Z             {
2026-06-15T13:33:59.4819433Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T13:33:59.4819538Z               "line": 140
2026-06-15T13:33:59.4819637Z             }
2026-06-15T13:33:59.4819741Z           ]
2026-06-15T13:33:59.4819846Z         },
2026-06-15T13:33:59.4819954Z         "unit": {
2026-06-15T13:33:59.4820072Z           "complete": true,
2026-06-15T13:33:59.4820179Z           "evidence": [
2026-06-15T13:33:59.4820283Z             {
2026-06-15T13:33:59.4820454Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.4820564Z               "line": 178
2026-06-15T13:33:59.4820673Z             },
2026-06-15T13:33:59.4820774Z             {
2026-06-15T13:33:59.4820931Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.4821051Z               "line": 242
2026-06-15T13:33:59.4821156Z             },
2026-06-15T13:33:59.4821255Z             {
2026-06-15T13:33:59.4821404Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4821522Z               "line": 1079
2026-06-15T13:33:59.4821622Z             },
2026-06-15T13:33:59.4821719Z             {
2026-06-15T13:33:59.4821880Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4822005Z               "line": 1109
2026-06-15T13:33:59.4822114Z             },
2026-06-15T13:33:59.4822214Z             {
2026-06-15T13:33:59.4822363Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T13:33:59.4822490Z               "line": 1129
2026-06-15T13:33:59.4822594Z             },
2026-06-15T13:33:59.4822694Z             {
2026-06-15T13:33:59.4822863Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T13:33:59.4822983Z               "line": 602
2026-06-15T13:33:59.4823083Z             },
2026-06-15T13:33:59.4823187Z             {
2026-06-15T13:33:59.4823336Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4823451Z               "line": 148
2026-06-15T13:33:59.4823550Z             },
2026-06-15T13:33:59.4823656Z             {
2026-06-15T13:33:59.4823812Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4823922Z               "line": 169
2026-06-15T13:33:59.4824018Z             },
2026-06-15T13:33:59.4824237Z             {
2026-06-15T13:33:59.4824384Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4824504Z               "line": 181
2026-06-15T13:33:59.4824605Z             },
2026-06-15T13:33:59.4824709Z             {
2026-06-15T13:33:59.4824852Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T13:33:59.4824958Z               "line": 202
2026-06-15T13:33:59.4825061Z             },
2026-06-15T13:33:59.4825160Z             {
2026-06-15T13:33:59.4825430Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4825531Z               "line": 375
2026-06-15T13:33:59.4825636Z             },
2026-06-15T13:33:59.4825744Z             {
2026-06-15T13:33:59.4825889Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.4826008Z               "line": 407
2026-06-15T13:33:59.4826112Z             },
2026-06-15T13:33:59.4826218Z             {
2026-06-15T13:33:59.4826351Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4826470Z               "line": 8395
2026-06-15T13:33:59.4826580Z             }
2026-06-15T13:33:59.4826680Z           ]
2026-06-15T13:33:59.4826784Z         }
2026-06-15T13:33:59.4826876Z       }
2026-06-15T13:33:59.4826976Z     },
2026-06-15T13:33:59.4827080Z     {
2026-06-15T13:33:59.4827201Z       "id": "REQ-MESH-5",
2026-06-15T13:33:59.4828676Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T13:33:59.4828801Z       "requiredStages": [
2026-06-15T13:33:59.4828915Z         "impl",
2026-06-15T13:33:59.4829092Z         "unit"
2026-06-15T13:33:59.4829187Z       ],
2026-06-15T13:33:59.4829296Z       "stages": {
2026-06-15T13:33:59.4829397Z         "doc": {
2026-06-15T13:33:59.4829520Z           "complete": false,
2026-06-15T13:33:59.4829635Z           "evidence": []
2026-06-15T13:33:59.4829736Z         },
2026-06-15T13:33:59.4829835Z         "impl": {
2026-06-15T13:33:59.4829954Z           "complete": true,
2026-06-15T13:33:59.4830070Z           "evidence": [
2026-06-15T13:33:59.4830173Z             {
2026-06-15T13:33:59.4830339Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4830457Z               "line": 61
2026-06-15T13:33:59.4830561Z             },
2026-06-15T13:33:59.4830661Z             {
2026-06-15T13:33:59.4830809Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4830923Z               "line": 109
2026-06-15T13:33:59.4831024Z             },
2026-06-15T13:33:59.4831129Z             {
2026-06-15T13:33:59.4831281Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.4831406Z               "line": 104
2026-06-15T13:33:59.4831505Z             },
2026-06-15T13:33:59.4831606Z             {
2026-06-15T13:33:59.4831758Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.4831862Z               "line": 105
2026-06-15T13:33:59.4831969Z             },
2026-06-15T13:33:59.4832068Z             {
2026-06-15T13:33:59.4832235Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4832350Z               "line": 85
2026-06-15T13:33:59.4832450Z             },
2026-06-15T13:33:59.4832550Z             {
2026-06-15T13:33:59.4832711Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4832831Z               "line": 250
2026-06-15T13:33:59.4832932Z             },
2026-06-15T13:33:59.4833040Z             {
2026-06-15T13:33:59.4833197Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4833311Z               "line": 314
2026-06-15T13:33:59.4833419Z             },
2026-06-15T13:33:59.4833625Z             {
2026-06-15T13:33:59.4833795Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4833896Z               "line": 715
2026-06-15T13:33:59.4834001Z             },
2026-06-15T13:33:59.4834100Z             {
2026-06-15T13:33:59.4834245Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4834354Z               "line": 101
2026-06-15T13:33:59.4834454Z             },
2026-06-15T13:33:59.4834559Z             {
2026-06-15T13:33:59.4834792Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4834907Z               "line": 193
2026-06-15T13:33:59.4835012Z             }
2026-06-15T13:33:59.4835102Z           ]
2026-06-15T13:33:59.4835208Z         },
2026-06-15T13:33:59.4835311Z         "int": {
2026-06-15T13:33:59.4835432Z           "complete": false,
2026-06-15T13:33:59.4835537Z           "evidence": []
2026-06-15T13:33:59.4835640Z         },
2026-06-15T13:33:59.4835754Z         "unit": {
2026-06-15T13:33:59.4835878Z           "complete": true,
2026-06-15T13:33:59.4835990Z           "evidence": [
2026-06-15T13:33:59.4836086Z             {
2026-06-15T13:33:59.4836253Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4836362Z               "line": 957
2026-06-15T13:33:59.4836468Z             },
2026-06-15T13:33:59.4836573Z             {
2026-06-15T13:33:59.4836715Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T13:33:59.4836825Z               "line": 462
2026-06-15T13:33:59.4836925Z             }
2026-06-15T13:33:59.4837025Z           ]
2026-06-15T13:33:59.4837131Z         }
2026-06-15T13:33:59.4837235Z       }
2026-06-15T13:33:59.4837340Z     },
2026-06-15T13:33:59.4837441Z     {
2026-06-15T13:33:59.4837564Z       "id": "REQ-MESH-6",
2026-06-15T13:33:59.4838888Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T13:33:59.4839089Z       "requiredStages": [
2026-06-15T13:33:59.4839193Z         "impl",
2026-06-15T13:33:59.4839290Z         "unit"
2026-06-15T13:33:59.4839389Z       ],
2026-06-15T13:33:59.4839493Z       "stages": {
2026-06-15T13:33:59.4839594Z         "doc": {
2026-06-15T13:33:59.4839723Z           "complete": false,
2026-06-15T13:33:59.4839837Z           "evidence": []
2026-06-15T13:33:59.4839953Z         },
2026-06-15T13:33:59.4840056Z         "impl": {
2026-06-15T13:33:59.4840176Z           "complete": true,
2026-06-15T13:33:59.4840287Z           "evidence": [
2026-06-15T13:33:59.4840390Z             {
2026-06-15T13:33:59.4840533Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4840649Z               "line": 3737
2026-06-15T13:33:59.4840748Z             }
2026-06-15T13:33:59.4840861Z           ]
2026-06-15T13:33:59.4840962Z         },
2026-06-15T13:33:59.4841069Z         "int": {
2026-06-15T13:33:59.4841188Z           "complete": false,
2026-06-15T13:33:59.4841299Z           "evidence": []
2026-06-15T13:33:59.4841403Z         },
2026-06-15T13:33:59.4841508Z         "unit": {
2026-06-15T13:33:59.4841618Z           "complete": true,
2026-06-15T13:33:59.4841736Z           "evidence": [
2026-06-15T13:33:59.4841832Z             {
2026-06-15T13:33:59.4841966Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4842080Z               "line": 8928
2026-06-15T13:33:59.4842186Z             },
2026-06-15T13:33:59.4842295Z             {
2026-06-15T13:33:59.4842423Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4842539Z               "line": 8955
2026-06-15T13:33:59.4842643Z             },
2026-06-15T13:33:59.4842752Z             {
2026-06-15T13:33:59.4842882Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4843135Z               "line": 8979
2026-06-15T13:33:59.4843239Z             }
2026-06-15T13:33:59.4843339Z           ]
2026-06-15T13:33:59.4843444Z         }
2026-06-15T13:33:59.4843549Z       }
2026-06-15T13:33:59.4843653Z     },
2026-06-15T13:33:59.4843757Z     {
2026-06-15T13:33:59.4843885Z       "id": "REQ-MIGRATE-1",
2026-06-15T13:33:59.4844098Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T13:33:59.4844218Z       "requiredStages": [],
2026-06-15T13:33:59.4844327Z       "stages": {
2026-06-15T13:33:59.4844533Z         "doc": {
2026-06-15T13:33:59.4844660Z           "complete": false,
2026-06-15T13:33:59.4844776Z           "evidence": []
2026-06-15T13:33:59.4844890Z         },
2026-06-15T13:33:59.4844994Z         "impl": {
2026-06-15T13:33:59.4845105Z           "complete": false,
2026-06-15T13:33:59.4845214Z           "evidence": []
2026-06-15T13:33:59.4845314Z         },
2026-06-15T13:33:59.4845434Z         "int": {
2026-06-15T13:33:59.4845547Z           "complete": false,
2026-06-15T13:33:59.4845658Z           "evidence": []
2026-06-15T13:33:59.4845763Z         },
2026-06-15T13:33:59.4845867Z         "unit": {
2026-06-15T13:33:59.4845987Z           "complete": false,
2026-06-15T13:33:59.4846092Z           "evidence": []
2026-06-15T13:33:59.4846195Z         }
2026-06-15T13:33:59.4846295Z       }
2026-06-15T13:33:59.4846400Z     },
2026-06-15T13:33:59.4846503Z     {
2026-06-15T13:33:59.4846617Z       "id": "REQ-MSG-1",
2026-06-15T13:33:59.4847109Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T13:33:59.4847237Z       "requiredStages": [
2026-06-15T13:33:59.4847333Z         "impl",
2026-06-15T13:33:59.4847438Z         "unit",
2026-06-15T13:33:59.4847542Z         "int"
2026-06-15T13:33:59.4847648Z       ],
2026-06-15T13:33:59.4847752Z       "stages": {
2026-06-15T13:33:59.4847852Z         "doc": {
2026-06-15T13:33:59.4847968Z           "complete": false,
2026-06-15T13:33:59.4848091Z           "evidence": []
2026-06-15T13:33:59.4848200Z         },
2026-06-15T13:33:59.4848306Z         "impl": {
2026-06-15T13:33:59.4848429Z           "complete": true,
2026-06-15T13:33:59.4848539Z           "evidence": [
2026-06-15T13:33:59.4848640Z             {
2026-06-15T13:33:59.4848787Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4848903Z               "line": 28
2026-06-15T13:33:59.4849091Z             },
2026-06-15T13:33:59.4849186Z             {
2026-06-15T13:33:59.4849336Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4849448Z               "line": 94
2026-06-15T13:33:59.4849558Z             },
2026-06-15T13:33:59.4849659Z             {
2026-06-15T13:33:59.4849801Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4849922Z               "line": 127
2026-06-15T13:33:59.4850021Z             },
2026-06-15T13:33:59.4850126Z             {
2026-06-15T13:33:59.4850269Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4850397Z               "line": 149
2026-06-15T13:33:59.4850494Z             },
2026-06-15T13:33:59.4850598Z             {
2026-06-15T13:33:59.4850741Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4850852Z               "line": 174
2026-06-15T13:33:59.4850955Z             },
2026-06-15T13:33:59.4851055Z             {
2026-06-15T13:33:59.4851200Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4851322Z               "line": 18
2026-06-15T13:33:59.4851426Z             },
2026-06-15T13:33:59.4851527Z             {
2026-06-15T13:33:59.4851672Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4851781Z               "line": 13
2026-06-15T13:33:59.4851878Z             },
2026-06-15T13:33:59.4851982Z             {
2026-06-15T13:33:59.4852120Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4852245Z               "line": 62
2026-06-15T13:33:59.4852450Z             },
2026-06-15T13:33:59.4852555Z             {
2026-06-15T13:33:59.4852692Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4852812Z               "line": 13
2026-06-15T13:33:59.4852916Z             }
2026-06-15T13:33:59.4853016Z           ]
2026-06-15T13:33:59.4853113Z         },
2026-06-15T13:33:59.4853217Z         "int": {
2026-06-15T13:33:59.4853331Z           "complete": true,
2026-06-15T13:33:59.4853442Z           "evidence": [
2026-06-15T13:33:59.4853546Z             {
2026-06-15T13:33:59.4853822Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:33:59.4853923Z               "line": 9
2026-06-15T13:33:59.4854034Z             },
2026-06-15T13:33:59.4854137Z             {
2026-06-15T13:33:59.4854308Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:33:59.4854412Z               "line": 56
2026-06-15T13:33:59.4854511Z             },
2026-06-15T13:33:59.4854620Z             {
2026-06-15T13:33:59.4854788Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:33:59.4854906Z               "line": 113
2026-06-15T13:33:59.4855007Z             }
2026-06-15T13:33:59.4855112Z           ]
2026-06-15T13:33:59.4855211Z         },
2026-06-15T13:33:59.4855313Z         "unit": {
2026-06-15T13:33:59.4855436Z           "complete": true,
2026-06-15T13:33:59.4855540Z           "evidence": [
2026-06-15T13:33:59.4855651Z             {
2026-06-15T13:33:59.4855793Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4855918Z               "line": 203
2026-06-15T13:33:59.4856027Z             },
2026-06-15T13:33:59.4856132Z             {
2026-06-15T13:33:59.4856281Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4856398Z               "line": 232
2026-06-15T13:33:59.4856494Z             },
2026-06-15T13:33:59.4856610Z             {
2026-06-15T13:33:59.4856751Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4856869Z               "line": 277
2026-06-15T13:33:59.4856979Z             },
2026-06-15T13:33:59.4857078Z             {
2026-06-15T13:33:59.4857220Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4857336Z               "line": 300
2026-06-15T13:33:59.4857434Z             },
2026-06-15T13:33:59.4857535Z             {
2026-06-15T13:33:59.4857679Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T13:33:59.4857797Z               "line": 325
2026-06-15T13:33:59.4857903Z             },
2026-06-15T13:33:59.4858007Z             {
2026-06-15T13:33:59.4858150Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4858270Z               "line": 204
2026-06-15T13:33:59.4858374Z             },
2026-06-15T13:33:59.4858479Z             {
2026-06-15T13:33:59.4858618Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4858727Z               "line": 237
2026-06-15T13:33:59.4858829Z             },
2026-06-15T13:33:59.4858932Z             {
2026-06-15T13:33:59.4859153Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4859266Z               "line": 251
2026-06-15T13:33:59.4859366Z             },
2026-06-15T13:33:59.4859463Z             {
2026-06-15T13:33:59.4859613Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4859727Z               "line": 263
2026-06-15T13:33:59.4859828Z             },
2026-06-15T13:33:59.4859938Z             {
2026-06-15T13:33:59.4860075Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4860195Z               "line": 162
2026-06-15T13:33:59.4860299Z             },
2026-06-15T13:33:59.4860405Z             {
2026-06-15T13:33:59.4860543Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T13:33:59.4860647Z               "line": 242
2026-06-15T13:33:59.4860753Z             },
2026-06-15T13:33:59.4860857Z             {
2026-06-15T13:33:59.4861000Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4861107Z               "line": 134
2026-06-15T13:33:59.4861305Z             },
2026-06-15T13:33:59.4861402Z             {
2026-06-15T13:33:59.4861543Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4861663Z               "line": 153
2026-06-15T13:33:59.4861755Z             }
2026-06-15T13:33:59.4861853Z           ]
2026-06-15T13:33:59.4861957Z         }
2026-06-15T13:33:59.4862063Z       }
2026-06-15T13:33:59.4862170Z     },
2026-06-15T13:33:59.4862275Z     {
2026-06-15T13:33:59.4862390Z       "id": "REQ-MSG-2",
2026-06-15T13:33:59.4862810Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T13:33:59.4862932Z       "requiredStages": [
2026-06-15T13:33:59.4863039Z         "impl",
2026-06-15T13:33:59.4863143Z         "unit"
2026-06-15T13:33:59.4863252Z       ],
2026-06-15T13:33:59.4863354Z       "stages": {
2026-06-15T13:33:59.4863458Z         "doc": {
2026-06-15T13:33:59.4863576Z           "complete": false,
2026-06-15T13:33:59.4863697Z           "evidence": []
2026-06-15T13:33:59.4863796Z         },
2026-06-15T13:33:59.4863906Z         "impl": {
2026-06-15T13:33:59.4864021Z           "complete": true,
2026-06-15T13:33:59.4864130Z           "evidence": [
2026-06-15T13:33:59.4864236Z             {
2026-06-15T13:33:59.4864364Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4864468Z               "line": 11
2026-06-15T13:33:59.4864574Z             },
2026-06-15T13:33:59.4864679Z             {
2026-06-15T13:33:59.4864820Z               "path": "crates/spt/src/main.rs",
2026-06-15T13:33:59.4864935Z               "line": 8
2026-06-15T13:33:59.4865042Z             }
2026-06-15T13:33:59.4865142Z           ]
2026-06-15T13:33:59.4865252Z         },
2026-06-15T13:33:59.4865353Z         "int": {
2026-06-15T13:33:59.4865471Z           "complete": false,
2026-06-15T13:33:59.4865586Z           "evidence": []
2026-06-15T13:33:59.4865681Z         },
2026-06-15T13:33:59.4865790Z         "unit": {
2026-06-15T13:33:59.4865906Z           "complete": true,
2026-06-15T13:33:59.4866029Z           "evidence": [
2026-06-15T13:33:59.4866129Z             {
2026-06-15T13:33:59.4866258Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4866367Z               "line": 6300
2026-06-15T13:33:59.4866468Z             },
2026-06-15T13:33:59.4866568Z             {
2026-06-15T13:33:59.4866692Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4866817Z               "line": 6342
2026-06-15T13:33:59.4866912Z             },
2026-06-15T13:33:59.4867016Z             {
2026-06-15T13:33:59.4867156Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4867269Z               "line": 6391
2026-06-15T13:33:59.4867377Z             },
2026-06-15T13:33:59.4867478Z             {
2026-06-15T13:33:59.4867618Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4867732Z               "line": 6414
2026-06-15T13:33:59.4867833Z             },
2026-06-15T13:33:59.4867933Z             {
2026-06-15T13:33:59.4868062Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4868182Z               "line": 8150
2026-06-15T13:33:59.4868286Z             },
2026-06-15T13:33:59.4868386Z             {
2026-06-15T13:33:59.4868510Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4868629Z               "line": 8159
2026-06-15T13:33:59.4868735Z             },
2026-06-15T13:33:59.4868835Z             {
2026-06-15T13:33:59.4869049Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4869159Z               "line": 8173
2026-06-15T13:33:59.4869273Z             }
2026-06-15T13:33:59.4869374Z           ]
2026-06-15T13:33:59.4869483Z         }
2026-06-15T13:33:59.4869583Z       }
2026-06-15T13:33:59.4869684Z     },
2026-06-15T13:33:59.4869779Z     {
2026-06-15T13:33:59.4869888Z       "id": "REQ-MSG-3",
2026-06-15T13:33:59.4870311Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T13:33:59.4870441Z       "requiredStages": [
2026-06-15T13:33:59.4870650Z         "impl",
2026-06-15T13:33:59.4870755Z         "unit",
2026-06-15T13:33:59.4870860Z         "int"
2026-06-15T13:33:59.4870960Z       ],
2026-06-15T13:33:59.4871065Z       "stages": {
2026-06-15T13:33:59.4871165Z         "doc": {
2026-06-15T13:33:59.4871289Z           "complete": false,
2026-06-15T13:33:59.4871404Z           "evidence": []
2026-06-15T13:33:59.4871499Z         },
2026-06-15T13:33:59.4871599Z         "impl": {
2026-06-15T13:33:59.4871719Z           "complete": true,
2026-06-15T13:33:59.4871929Z           "evidence": [
2026-06-15T13:33:59.4872048Z             {
2026-06-15T13:33:59.4872190Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T13:33:59.4872306Z               "line": 19
2026-06-15T13:33:59.4872409Z             },
2026-06-15T13:33:59.4872513Z             {
2026-06-15T13:33:59.4872652Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4872763Z               "line": 21
2026-06-15T13:33:59.4872868Z             },
2026-06-15T13:33:59.4872969Z             {
2026-06-15T13:33:59.4873116Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4873227Z               "line": 48
2026-06-15T13:33:59.4873326Z             },
2026-06-15T13:33:59.4873431Z             {
2026-06-15T13:33:59.4873566Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4873680Z               "line": 151
2026-06-15T13:33:59.4873784Z             }
2026-06-15T13:33:59.4873885Z           ]
2026-06-15T13:33:59.4873994Z         },
2026-06-15T13:33:59.4874103Z         "int": {
2026-06-15T13:33:59.4874219Z           "complete": true,
2026-06-15T13:33:59.4874333Z           "evidence": [
2026-06-15T13:33:59.4874432Z             {
2026-06-15T13:33:59.4874600Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:33:59.4874704Z               "line": 10
2026-06-15T13:33:59.4874811Z             },
2026-06-15T13:33:59.4874915Z             {
2026-06-15T13:33:59.4875077Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T13:33:59.4875183Z               "line": 56
2026-06-15T13:33:59.4875295Z             }
2026-06-15T13:33:59.4875394Z           ]
2026-06-15T13:33:59.4875490Z         },
2026-06-15T13:33:59.4875603Z         "unit": {
2026-06-15T13:33:59.4875716Z           "complete": true,
2026-06-15T13:33:59.4875832Z           "evidence": [
2026-06-15T13:33:59.4875936Z             {
2026-06-15T13:33:59.4876079Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4876198Z               "line": 205
2026-06-15T13:33:59.4876307Z             },
2026-06-15T13:33:59.4876418Z             {
2026-06-15T13:33:59.4876547Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4876651Z               "line": 224
2026-06-15T13:33:59.4876752Z             },
2026-06-15T13:33:59.4876856Z             {
2026-06-15T13:33:59.4876999Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T13:33:59.4877106Z               "line": 247
2026-06-15T13:33:59.4877213Z             }
2026-06-15T13:33:59.4877314Z           ]
2026-06-15T13:33:59.4877415Z         }
2026-06-15T13:33:59.4877518Z       }
2026-06-15T13:33:59.4877624Z     },
2026-06-15T13:33:59.4877726Z     {
2026-06-15T13:33:59.4877838Z       "id": "REQ-MSG-4",
2026-06-15T13:33:59.4878727Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T13:33:59.4878850Z       "requiredStages": [
2026-06-15T13:33:59.4879042Z         "impl",
2026-06-15T13:33:59.4879151Z         "unit",
2026-06-15T13:33:59.4879256Z         "int"
2026-06-15T13:33:59.4879357Z       ],
2026-06-15T13:33:59.4879461Z       "stages": {
2026-06-15T13:33:59.4879571Z         "doc": {
2026-06-15T13:33:59.4879690Z           "complete": false,
2026-06-15T13:33:59.4879790Z           "evidence": []
2026-06-15T13:33:59.4880033Z         },
2026-06-15T13:33:59.4880138Z         "impl": {
2026-06-15T13:33:59.4880254Z           "complete": true,
2026-06-15T13:33:59.4880358Z           "evidence": [
2026-06-15T13:33:59.4880458Z             {
2026-06-15T13:33:59.4880602Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4880715Z               "line": 19
2026-06-15T13:33:59.4880818Z             },
2026-06-15T13:33:59.4880920Z             {
2026-06-15T13:33:59.4881062Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4881282Z               "line": 46
2026-06-15T13:33:59.4881382Z             },
2026-06-15T13:33:59.4881486Z             {
2026-06-15T13:33:59.4881630Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4881749Z               "line": 409
2026-06-15T13:33:59.4881849Z             },
2026-06-15T13:33:59.4881945Z             {
2026-06-15T13:33:59.4882082Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4882203Z               "line": 2708
2026-06-15T13:33:59.4882307Z             }
2026-06-15T13:33:59.4882411Z           ]
2026-06-15T13:33:59.4882513Z         },
2026-06-15T13:33:59.4882617Z         "int": {
2026-06-15T13:33:59.4882736Z           "complete": true,
2026-06-15T13:33:59.4882842Z           "evidence": [
2026-06-15T13:33:59.4882945Z             {
2026-06-15T13:33:59.4883092Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:33:59.4883197Z               "line": 98
2026-06-15T13:33:59.4883296Z             },
2026-06-15T13:33:59.4883400Z             {
2026-06-15T13:33:59.4886344Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T13:33:59.4886487Z               "line": 128
2026-06-15T13:33:59.4886582Z             }
2026-06-15T13:33:59.4886688Z           ]
2026-06-15T13:33:59.4886783Z         },
2026-06-15T13:33:59.4886891Z         "unit": {
2026-06-15T13:33:59.4887012Z           "complete": true,
2026-06-15T13:33:59.4887126Z           "evidence": [
2026-06-15T13:33:59.4887225Z             {
2026-06-15T13:33:59.4887370Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4887483Z               "line": 68
2026-06-15T13:33:59.4887593Z             },
2026-06-15T13:33:59.4887694Z             {
2026-06-15T13:33:59.4887831Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4887951Z               "line": 79
2026-06-15T13:33:59.4888051Z             },
2026-06-15T13:33:59.4888151Z             {
2026-06-15T13:33:59.4888290Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4888412Z               "line": 90
2026-06-15T13:33:59.4888511Z             },
2026-06-15T13:33:59.4888617Z             {
2026-06-15T13:33:59.4888758Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4888877Z               "line": 151
2026-06-15T13:33:59.4889072Z             }
2026-06-15T13:33:59.4889172Z           ]
2026-06-15T13:33:59.4889269Z         }
2026-06-15T13:33:59.4889373Z       }
2026-06-15T13:33:59.4889477Z     },
2026-06-15T13:33:59.4889574Z     {
2026-06-15T13:33:59.4889688Z       "id": "REQ-MSG-5",
2026-06-15T13:33:59.4890494Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T13:33:59.4890617Z       "requiredStages": [
2026-06-15T13:33:59.4890722Z         "doc",
2026-06-15T13:33:59.4890823Z         "impl",
2026-06-15T13:33:59.4890922Z         "unit"
2026-06-15T13:33:59.4891023Z       ],
2026-06-15T13:33:59.4891124Z       "stages": {
2026-06-15T13:33:59.4891228Z         "doc": {
2026-06-15T13:33:59.4891341Z           "complete": true,
2026-06-15T13:33:59.4891450Z           "evidence": [
2026-06-15T13:33:59.4891557Z             {
2026-06-15T13:33:59.4891675Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4891794Z               "line": 212
2026-06-15T13:33:59.4891895Z             }
2026-06-15T13:33:59.4892124Z           ]
2026-06-15T13:33:59.4892228Z         },
2026-06-15T13:33:59.4892333Z         "impl": {
2026-06-15T13:33:59.4892453Z           "complete": true,
2026-06-15T13:33:59.4892557Z           "evidence": [
2026-06-15T13:33:59.4892657Z             {
2026-06-15T13:33:59.4892801Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4892915Z               "line": 60
2026-06-15T13:33:59.4893010Z             },
2026-06-15T13:33:59.4893111Z             {
2026-06-15T13:33:59.4893354Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4893468Z               "line": 118
2026-06-15T13:33:59.4893576Z             },
2026-06-15T13:33:59.4893676Z             {
2026-06-15T13:33:59.4893818Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4893941Z               "line": 127
2026-06-15T13:33:59.4894042Z             },
2026-06-15T13:33:59.4894138Z             {
2026-06-15T13:33:59.4894279Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4894395Z               "line": 141
2026-06-15T13:33:59.4894499Z             },
2026-06-15T13:33:59.4894599Z             {
2026-06-15T13:33:59.4894738Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4894842Z               "line": 170
2026-06-15T13:33:59.4894943Z             },
2026-06-15T13:33:59.4895048Z             {
2026-06-15T13:33:59.4895190Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4895306Z               "line": 2454
2026-06-15T13:33:59.4895405Z             }
2026-06-15T13:33:59.4895510Z           ]
2026-06-15T13:33:59.4895611Z         },
2026-06-15T13:33:59.4895715Z         "int": {
2026-06-15T13:33:59.4895825Z           "complete": true,
2026-06-15T13:33:59.4895941Z           "evidence": [
2026-06-15T13:33:59.4896044Z             {
2026-06-15T13:33:59.4896197Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T13:33:59.4896312Z               "line": 19
2026-06-15T13:33:59.4896416Z             }
2026-06-15T13:33:59.4896524Z           ]
2026-06-15T13:33:59.4896630Z         },
2026-06-15T13:33:59.4896737Z         "unit": {
2026-06-15T13:33:59.4896851Z           "complete": true,
2026-06-15T13:33:59.4896962Z           "evidence": [
2026-06-15T13:33:59.4897061Z             {
2026-06-15T13:33:59.4897204Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4897319Z               "line": 192
2026-06-15T13:33:59.4897423Z             },
2026-06-15T13:33:59.4897524Z             {
2026-06-15T13:33:59.4897682Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:33:59.4897805Z               "line": 154
2026-06-15T13:33:59.4897911Z             },
2026-06-15T13:33:59.4898000Z             {
2026-06-15T13:33:59.4898143Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4898244Z               "line": 122
2026-06-15T13:33:59.4898348Z             },
2026-06-15T13:33:59.4898449Z             {
2026-06-15T13:33:59.4898592Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4898711Z               "line": 444
2026-06-15T13:33:59.4898812Z             },
2026-06-15T13:33:59.4898917Z             {
2026-06-15T13:33:59.4899130Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4899248Z               "line": 493
2026-06-15T13:33:59.4899351Z             },
2026-06-15T13:33:59.4899447Z             {
2026-06-15T13:33:59.4899591Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4899704Z               "line": 509
2026-06-15T13:33:59.4899815Z             },
2026-06-15T13:33:59.4899905Z             {
2026-06-15T13:33:59.4900051Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T13:33:59.4900163Z               "line": 528
2026-06-15T13:33:59.4900267Z             },
2026-06-15T13:33:59.4900371Z             {
2026-06-15T13:33:59.4900505Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4900619Z               "line": 6243
2026-06-15T13:33:59.4900715Z             }
2026-06-15T13:33:59.4900934Z           ]
2026-06-15T13:33:59.4901040Z         }
2026-06-15T13:33:59.4901145Z       }
2026-06-15T13:33:59.4901244Z     },
2026-06-15T13:33:59.4901345Z     {
2026-06-15T13:33:59.4901460Z       "id": "REQ-MSG-6",
2026-06-15T13:33:59.4903169Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T13:33:59.4903385Z       "requiredStages": [
2026-06-15T13:33:59.4903484Z         "doc",
2026-06-15T13:33:59.4903590Z         "impl",
2026-06-15T13:33:59.4903690Z         "unit"
2026-06-15T13:33:59.4903784Z       ],
2026-06-15T13:33:59.4903894Z       "stages": {
2026-06-15T13:33:59.4904000Z         "doc": {
2026-06-15T13:33:59.4904118Z           "complete": true,
2026-06-15T13:33:59.4904232Z           "evidence": [
2026-06-15T13:33:59.4904332Z             {
2026-06-15T13:33:59.4904459Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.4904558Z               "line": 215
2026-06-15T13:33:59.4904660Z             }
2026-06-15T13:33:59.4904764Z           ]
2026-06-15T13:33:59.4904864Z         },
2026-06-15T13:33:59.4904979Z         "impl": {
2026-06-15T13:33:59.4905092Z           "complete": true,
2026-06-15T13:33:59.4905197Z           "evidence": [
2026-06-15T13:33:59.4905303Z             {
2026-06-15T13:33:59.4905473Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4905594Z               "line": 177
2026-06-15T13:33:59.4905689Z             },
2026-06-15T13:33:59.4905793Z             {
2026-06-15T13:33:59.4905956Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4906080Z               "line": 422
2026-06-15T13:33:59.4906176Z             },
2026-06-15T13:33:59.4906280Z             {
2026-06-15T13:33:59.4906442Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4906552Z               "line": 445
2026-06-15T13:33:59.4906656Z             },
2026-06-15T13:33:59.4906752Z             {
2026-06-15T13:33:59.4906896Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4906999Z               "line": 89
2026-06-15T13:33:59.4907103Z             },
2026-06-15T13:33:59.4907204Z             {
2026-06-15T13:33:59.4907353Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.4907469Z               "line": 155
2026-06-15T13:33:59.4907569Z             }
2026-06-15T13:33:59.4907682Z           ]
2026-06-15T13:33:59.4907779Z         },
2026-06-15T13:33:59.4907884Z         "int": {
2026-06-15T13:33:59.4907993Z           "complete": false,
2026-06-15T13:33:59.4908104Z           "evidence": []
2026-06-15T13:33:59.4908208Z         },
2026-06-15T13:33:59.4908308Z         "unit": {
2026-06-15T13:33:59.4908428Z           "complete": true,
2026-06-15T13:33:59.4908527Z           "evidence": [
2026-06-15T13:33:59.4908632Z             {
2026-06-15T13:33:59.4908790Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.4908898Z               "line": 1639
2026-06-15T13:33:59.4909081Z             },
2026-06-15T13:33:59.4909181Z             {
2026-06-15T13:33:59.4909319Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4909434Z               "line": 219
2026-06-15T13:33:59.4909537Z             }
2026-06-15T13:33:59.4909642Z           ]
2026-06-15T13:33:59.4909742Z         }
2026-06-15T13:33:59.4909845Z       }
2026-06-15T13:33:59.4909949Z     },
2026-06-15T13:33:59.4910050Z     {
2026-06-15T13:33:59.4910174Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T13:33:59.4913977Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T13:33:59.4914340Z       "requiredStages": [
2026-06-15T13:33:59.4914440Z         "doc",
2026-06-15T13:33:59.4914547Z         "impl",
2026-06-15T13:33:59.4914640Z         "unit",
2026-06-15T13:33:59.4914744Z         "int"
2026-06-15T13:33:59.4914845Z       ],
2026-06-15T13:33:59.4914948Z       "stages": {
2026-06-15T13:33:59.4915051Z         "doc": {
2026-06-15T13:33:59.4915172Z           "complete": true,
2026-06-15T13:33:59.4915295Z           "evidence": [
2026-06-15T13:33:59.4915394Z             {
2026-06-15T13:33:59.4915667Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T13:33:59.4915782Z               "line": 47
2026-06-15T13:33:59.4915887Z             }
2026-06-15T13:33:59.4915991Z           ]
2026-06-15T13:33:59.4916097Z         },
2026-06-15T13:33:59.4916197Z         "impl": {
2026-06-15T13:33:59.4916306Z           "complete": true,
2026-06-15T13:33:59.4916421Z           "evidence": [
2026-06-15T13:33:59.4916520Z             {
2026-06-15T13:33:59.4916668Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4916770Z               "line": 20
2026-06-15T13:33:59.4916873Z             },
2026-06-15T13:33:59.4916978Z             {
2026-06-15T13:33:59.4917117Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4917226Z               "line": 33
2026-06-15T13:33:59.4917322Z             },
2026-06-15T13:33:59.4917428Z             {
2026-06-15T13:33:59.4917564Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4917664Z               "line": 47
2026-06-15T13:33:59.4917764Z             },
2026-06-15T13:33:59.4917857Z             {
2026-06-15T13:33:59.4918000Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4918092Z               "line": 58
2026-06-15T13:33:59.4918201Z             },
2026-06-15T13:33:59.4918296Z             {
2026-06-15T13:33:59.4918449Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4918548Z               "line": 14
2026-06-15T13:33:59.4918654Z             },
2026-06-15T13:33:59.4918754Z             {
2026-06-15T13:33:59.4918891Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4919087Z               "line": 27
2026-06-15T13:33:59.4919188Z             },
2026-06-15T13:33:59.4919293Z             {
2026-06-15T13:33:59.4919435Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4919550Z               "line": 40
2026-06-15T13:33:59.4919655Z             },
2026-06-15T13:33:59.4919755Z             {
2026-06-15T13:33:59.4919894Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4920013Z               "line": 92
2026-06-15T13:33:59.4920116Z             },
2026-06-15T13:33:59.4920216Z             {
2026-06-15T13:33:59.4920368Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.4920480Z               "line": 143
2026-06-15T13:33:59.4920687Z             },
2026-06-15T13:33:59.4920790Z             {
2026-06-15T13:33:59.4920925Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.4921030Z               "line": 216
2026-06-15T13:33:59.4921129Z             },
2026-06-15T13:33:59.4921230Z             {
2026-06-15T13:33:59.4921373Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.4921492Z               "line": 410
2026-06-15T13:33:59.4921602Z             },
2026-06-15T13:33:59.4921702Z             {
2026-06-15T13:33:59.4921931Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T13:33:59.4922050Z               "line": 78
2026-06-15T13:33:59.4922145Z             },
2026-06-15T13:33:59.4922242Z             {
2026-06-15T13:33:59.4922374Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4922513Z               "line": 2709
2026-06-15T13:33:59.4922617Z             }
2026-06-15T13:33:59.4922722Z           ]
2026-06-15T13:33:59.4922824Z         },
2026-06-15T13:33:59.4922923Z         "int": {
2026-06-15T13:33:59.4923045Z           "complete": true,
2026-06-15T13:33:59.4923150Z           "evidence": [
2026-06-15T13:33:59.4923252Z             {
2026-06-15T13:33:59.4923421Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T13:33:59.4923523Z               "line": 15
2026-06-15T13:33:59.4923618Z             }
2026-06-15T13:33:59.4923713Z           ]
2026-06-15T13:33:59.4923814Z         },
2026-06-15T13:33:59.4923924Z         "unit": {
2026-06-15T13:33:59.4924046Z           "complete": true,
2026-06-15T13:33:59.4924162Z           "evidence": [
2026-06-15T13:33:59.4924262Z             {
2026-06-15T13:33:59.4924405Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4924519Z               "line": 102
2026-06-15T13:33:59.4924623Z             },
2026-06-15T13:33:59.4924725Z             {
2026-06-15T13:33:59.4924871Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T13:33:59.4924986Z               "line": 137
2026-06-15T13:33:59.4925092Z             },
2026-06-15T13:33:59.4925195Z             {
2026-06-15T13:33:59.4925323Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4925438Z               "line": 98
2026-06-15T13:33:59.4925526Z             },
2026-06-15T13:33:59.4925630Z             {
2026-06-15T13:33:59.4925775Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4925874Z               "line": 106
2026-06-15T13:33:59.4925974Z             },
2026-06-15T13:33:59.4926075Z             {
2026-06-15T13:33:59.4926217Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4926332Z               "line": 113
2026-06-15T13:33:59.4926437Z             },
2026-06-15T13:33:59.4926546Z             {
2026-06-15T13:33:59.4926676Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T13:33:59.4926790Z               "line": 122
2026-06-15T13:33:59.4926894Z             }
2026-06-15T13:33:59.4926991Z           ]
2026-06-15T13:33:59.4927090Z         }
2026-06-15T13:33:59.4927195Z       }
2026-06-15T13:33:59.4927301Z     },
2026-06-15T13:33:59.4927400Z     {
2026-06-15T13:33:59.4927519Z       "id": "REQ-NET-1",
2026-06-15T13:33:59.4927738Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T13:33:59.4927863Z       "requiredStages": [
2026-06-15T13:33:59.4927969Z         "impl",
2026-06-15T13:33:59.4928067Z         "unit",
2026-06-15T13:33:59.4928171Z         "int"
2026-06-15T13:33:59.4928267Z       ],
2026-06-15T13:33:59.4928375Z       "stages": {
2026-06-15T13:33:59.4928484Z         "doc": {
2026-06-15T13:33:59.4928604Z           "complete": false,
2026-06-15T13:33:59.4928704Z           "evidence": []
2026-06-15T13:33:59.4928808Z         },
2026-06-15T13:33:59.4928914Z         "impl": {
2026-06-15T13:33:59.4929137Z           "complete": true,
2026-06-15T13:33:59.4929248Z           "evidence": [
2026-06-15T13:33:59.4929352Z             {
2026-06-15T13:33:59.4929514Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4929728Z               "line": 54
2026-06-15T13:33:59.4929838Z             },
2026-06-15T13:33:59.4929934Z             {
2026-06-15T13:33:59.4930081Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4930202Z               "line": 594
2026-06-15T13:33:59.4930296Z             },
2026-06-15T13:33:59.4930396Z             {
2026-06-15T13:33:59.4930540Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T13:33:59.4930653Z               "line": 130
2026-06-15T13:33:59.4930771Z             },
2026-06-15T13:33:59.4930961Z             {
2026-06-15T13:33:59.4931122Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4931233Z               "line": 97
2026-06-15T13:33:59.4931332Z             },
2026-06-15T13:33:59.4931436Z             {
2026-06-15T13:33:59.4931585Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4931698Z               "line": 159
2026-06-15T13:33:59.4931809Z             },
2026-06-15T13:33:59.4931914Z             {
2026-06-15T13:33:59.4932066Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4932181Z               "line": 175
2026-06-15T13:33:59.4932286Z             },
2026-06-15T13:33:59.4932386Z             {
2026-06-15T13:33:59.4932539Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4932648Z               "line": 190
2026-06-15T13:33:59.4932759Z             },
2026-06-15T13:33:59.4932858Z             {
2026-06-15T13:33:59.4933006Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4933126Z               "line": 271
2026-06-15T13:33:59.4933229Z             },
2026-06-15T13:33:59.4933335Z             {
2026-06-15T13:33:59.4933483Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4933596Z               "line": 306
2026-06-15T13:33:59.4933696Z             },
2026-06-15T13:33:59.4933802Z             {
2026-06-15T13:33:59.4933953Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4934069Z               "line": 312
2026-06-15T13:33:59.4934178Z             },
2026-06-15T13:33:59.4934282Z             {
2026-06-15T13:33:59.4934435Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4934540Z               "line": 318
2026-06-15T13:33:59.4934645Z             },
2026-06-15T13:33:59.4934750Z             {
2026-06-15T13:33:59.4934892Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4935004Z               "line": 334
2026-06-15T13:33:59.4935112Z             },
2026-06-15T13:33:59.4935212Z             {
2026-06-15T13:33:59.4935361Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4935479Z               "line": 354
2026-06-15T13:33:59.4935584Z             },
2026-06-15T13:33:59.4935690Z             {
2026-06-15T13:33:59.4935841Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4935960Z               "line": 35
2026-06-15T13:33:59.4936068Z             },
2026-06-15T13:33:59.4936182Z             {
2026-06-15T13:33:59.4936335Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4936458Z               "line": 85
2026-06-15T13:33:59.4936568Z             },
2026-06-15T13:33:59.4936673Z             {
2026-06-15T13:33:59.4936816Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4936941Z               "line": 138
2026-06-15T13:33:59.4937045Z             },
2026-06-15T13:33:59.4937154Z             {
2026-06-15T13:33:59.4937302Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.4937407Z               "line": 2551
2026-06-15T13:33:59.4937517Z             },
2026-06-15T13:33:59.4937613Z             {
2026-06-15T13:33:59.4937755Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4937866Z               "line": 17
2026-06-15T13:33:59.4937965Z             }
2026-06-15T13:33:59.4938074Z           ]
2026-06-15T13:33:59.4938176Z         },
2026-06-15T13:33:59.4938294Z         "int": {
2026-06-15T13:33:59.4938486Z           "complete": true,
2026-06-15T13:33:59.4938604Z           "evidence": [
2026-06-15T13:33:59.4938708Z             {
2026-06-15T13:33:59.4938870Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.4939067Z               "line": 341
2026-06-15T13:33:59.4939173Z             },
2026-06-15T13:33:59.4939269Z             {
2026-06-15T13:33:59.4939420Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4939541Z               "line": 606
2026-06-15T13:33:59.4939750Z             },
2026-06-15T13:33:59.4939855Z             {
2026-06-15T13:33:59.4940002Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4940108Z               "line": 879
2026-06-15T13:33:59.4940212Z             }
2026-06-15T13:33:59.4940312Z           ]
2026-06-15T13:33:59.4940418Z         },
2026-06-15T13:33:59.4940536Z         "unit": {
2026-06-15T13:33:59.4940651Z           "complete": true,
2026-06-15T13:33:59.4940772Z           "evidence": [
2026-06-15T13:33:59.4940879Z             {
2026-06-15T13:33:59.4941024Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4941128Z               "line": 651
2026-06-15T13:33:59.4941232Z             },
2026-06-15T13:33:59.4941331Z             {
2026-06-15T13:33:59.4941483Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4941596Z               "line": 686
2026-06-15T13:33:59.4941701Z             },
2026-06-15T13:33:59.4941798Z             {
2026-06-15T13:33:59.4941958Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.4942064Z               "line": 936
2026-06-15T13:33:59.4942165Z             },
2026-06-15T13:33:59.4942263Z             {
2026-06-15T13:33:59.4942417Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T13:33:59.4942531Z               "line": 201
2026-06-15T13:33:59.4942636Z             },
2026-06-15T13:33:59.4942741Z             {
2026-06-15T13:33:59.4942884Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4942995Z               "line": 442
2026-06-15T13:33:59.4943094Z             },
2026-06-15T13:33:59.4943194Z             {
2026-06-15T13:33:59.4943342Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4943451Z               "line": 456
2026-06-15T13:33:59.4943551Z             },
2026-06-15T13:33:59.4943653Z             {
2026-06-15T13:33:59.4943799Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4943920Z               "line": 475
2026-06-15T13:33:59.4944024Z             },
2026-06-15T13:33:59.4944123Z             {
2026-06-15T13:33:59.4944271Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4944377Z               "line": 120
2026-06-15T13:33:59.4944470Z             },
2026-06-15T13:33:59.4944581Z             {
2026-06-15T13:33:59.4944720Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T13:33:59.4944837Z               "line": 163
2026-06-15T13:33:59.4944944Z             },
2026-06-15T13:33:59.4945039Z             {
2026-06-15T13:33:59.4945186Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T13:33:59.4945301Z               "line": 530
2026-06-15T13:33:59.4945406Z             },
2026-06-15T13:33:59.4945510Z             {
2026-06-15T13:33:59.4945649Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4945749Z               "line": 616
2026-06-15T13:33:59.4945855Z             },
2026-06-15T13:33:59.4945955Z             {
2026-06-15T13:33:59.4946111Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.4946227Z               "line": 1006
2026-06-15T13:33:59.4946330Z             }
2026-06-15T13:33:59.4946443Z           ]
2026-06-15T13:33:59.4946549Z         }
2026-06-15T13:33:59.4946647Z       }
2026-06-15T13:33:59.4946751Z     },
2026-06-15T13:33:59.4946852Z     {
2026-06-15T13:33:59.4946971Z       "id": "REQ-NET-2",
2026-06-15T13:33:59.4947181Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T13:33:59.4947409Z       "requiredStages": [
2026-06-15T13:33:59.4947515Z         "impl"
2026-06-15T13:33:59.4947615Z       ],
2026-06-15T13:33:59.4947719Z       "stages": {
2026-06-15T13:33:59.4947816Z         "doc": {
2026-06-15T13:33:59.4947939Z           "complete": false,
2026-06-15T13:33:59.4948057Z           "evidence": []
2026-06-15T13:33:59.4948173Z         },
2026-06-15T13:33:59.4948273Z         "impl": {
2026-06-15T13:33:59.4948397Z           "complete": true,
2026-06-15T13:33:59.4948678Z           "evidence": [
2026-06-15T13:33:59.4948770Z             {
2026-06-15T13:33:59.4948926Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.4949127Z               "line": 57
2026-06-15T13:33:59.4949239Z             },
2026-06-15T13:33:59.4949344Z             {
2026-06-15T13:33:59.4949500Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4949618Z               "line": 71
2026-06-15T13:33:59.4949719Z             },
2026-06-15T13:33:59.4949829Z             {
2026-06-15T13:33:59.4949976Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4950091Z               "line": 81
2026-06-15T13:33:59.4950195Z             },
2026-06-15T13:33:59.4950295Z             {
2026-06-15T13:33:59.4950453Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4950572Z               "line": 159
2026-06-15T13:33:59.4950678Z             },
2026-06-15T13:33:59.4950777Z             {
2026-06-15T13:33:59.4950934Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4951050Z               "line": 175
2026-06-15T13:33:59.4951149Z             },
2026-06-15T13:33:59.4951254Z             {
2026-06-15T13:33:59.4951393Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T13:33:59.4951512Z               "line": 190
2026-06-15T13:33:59.4951613Z             }
2026-06-15T13:33:59.4951712Z           ]
2026-06-15T13:33:59.4951811Z         },
2026-06-15T13:33:59.4951911Z         "int": {
2026-06-15T13:33:59.4952025Z           "complete": false,
2026-06-15T13:33:59.4952128Z           "evidence": []
2026-06-15T13:33:59.4952233Z         },
2026-06-15T13:33:59.4952339Z         "unit": {
2026-06-15T13:33:59.4952462Z           "complete": true,
2026-06-15T13:33:59.4952571Z           "evidence": [
2026-06-15T13:33:59.4952668Z             {
2026-06-15T13:33:59.4952810Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.4952925Z               "line": 402
2026-06-15T13:33:59.4953030Z             }
2026-06-15T13:33:59.4953129Z           ]
2026-06-15T13:33:59.4953235Z         }
2026-06-15T13:33:59.4953334Z       }
2026-06-15T13:33:59.4953439Z     },
2026-06-15T13:33:59.4953540Z     {
2026-06-15T13:33:59.4953645Z       "id": "REQ-NET-3",
2026-06-15T13:33:59.4953850Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T13:33:59.4953959Z       "requiredStages": [
2026-06-15T13:33:59.4954069Z         "impl",
2026-06-15T13:33:59.4954175Z         "unit"
2026-06-15T13:33:59.4954279Z       ],
2026-06-15T13:33:59.4954379Z       "stages": {
2026-06-15T13:33:59.4954485Z         "doc": {
2026-06-15T13:33:59.4954608Z           "complete": false,
2026-06-15T13:33:59.4954721Z           "evidence": []
2026-06-15T13:33:59.4954826Z         },
2026-06-15T13:33:59.4954927Z         "impl": {
2026-06-15T13:33:59.4955054Z           "complete": true,
2026-06-15T13:33:59.4955160Z           "evidence": [
2026-06-15T13:33:59.4955260Z             {
2026-06-15T13:33:59.4955412Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4955513Z               "line": 39
2026-06-15T13:33:59.4955627Z             },
2026-06-15T13:33:59.4955727Z             {
2026-06-15T13:33:59.4955875Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4955989Z               "line": 182
2026-06-15T13:33:59.4956090Z             },
2026-06-15T13:33:59.4956195Z             {
2026-06-15T13:33:59.4956337Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T13:33:59.4956566Z               "line": 333
2026-06-15T13:33:59.4956671Z             },
2026-06-15T13:33:59.4956782Z             {
2026-06-15T13:33:59.4956927Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:33:59.4957037Z               "line": 36
2026-06-15T13:33:59.4957147Z             },
2026-06-15T13:33:59.4957240Z             {
2026-06-15T13:33:59.4957397Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4957513Z               "line": 158
2026-06-15T13:33:59.4957726Z             },
2026-06-15T13:33:59.4957822Z             {
2026-06-15T13:33:59.4957983Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4958108Z               "line": 212
2026-06-15T13:33:59.4958213Z             },
2026-06-15T13:33:59.4958318Z             {
2026-06-15T13:33:59.4958470Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4958579Z               "line": 233
2026-06-15T13:33:59.4958681Z             },
2026-06-15T13:33:59.4958780Z             {
2026-06-15T13:33:59.4959024Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4959142Z               "line": 291
2026-06-15T13:33:59.4959243Z             },
2026-06-15T13:33:59.4959344Z             {
2026-06-15T13:33:59.4959510Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4959625Z               "line": 310
2026-06-15T13:33:59.4959725Z             },
2026-06-15T13:33:59.4959828Z             {
2026-06-15T13:33:59.4959985Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4960102Z               "line": 348
2026-06-15T13:33:59.4960207Z             },
2026-06-15T13:33:59.4960318Z             {
2026-06-15T13:33:59.4960474Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4960589Z               "line": 393
2026-06-15T13:33:59.4960684Z             },
2026-06-15T13:33:59.4960788Z             {
2026-06-15T13:33:59.4960943Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.4961057Z               "line": 406
2026-06-15T13:33:59.4961156Z             },
2026-06-15T13:33:59.4961257Z             {
2026-06-15T13:33:59.4961404Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4961519Z               "line": 29
2026-06-15T13:33:59.4961619Z             },
2026-06-15T13:33:59.4961719Z             {
2026-06-15T13:33:59.4961872Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4961990Z               "line": 72
2026-06-15T13:33:59.4962086Z             },
2026-06-15T13:33:59.4962187Z             {
2026-06-15T13:33:59.4962348Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4962451Z               "line": 123
2026-06-15T13:33:59.4962557Z             }
2026-06-15T13:33:59.4962659Z           ]
2026-06-15T13:33:59.4962759Z         },
2026-06-15T13:33:59.4962865Z         "int": {
2026-06-15T13:33:59.4962988Z           "complete": false,
2026-06-15T13:33:59.4963103Z           "evidence": []
2026-06-15T13:33:59.4963213Z         },
2026-06-15T13:33:59.4963313Z         "unit": {
2026-06-15T13:33:59.4963437Z           "complete": true,
2026-06-15T13:33:59.4963542Z           "evidence": [
2026-06-15T13:33:59.4963642Z             {
2026-06-15T13:33:59.4963791Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4963909Z               "line": 223
2026-06-15T13:33:59.4964004Z             },
2026-06-15T13:33:59.4964105Z             {
2026-06-15T13:33:59.4964257Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4964361Z               "line": 351
2026-06-15T13:33:59.4964463Z             },
2026-06-15T13:33:59.4964566Z             {
2026-06-15T13:33:59.4964716Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T13:33:59.4964829Z               "line": 504
2026-06-15T13:33:59.4964934Z             },
2026-06-15T13:33:59.4965035Z             {
2026-06-15T13:33:59.4965182Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:33:59.4965406Z               "line": 93
2026-06-15T13:33:59.4965506Z             },
2026-06-15T13:33:59.4965605Z             {
2026-06-15T13:33:59.4965749Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T13:33:59.4965868Z               "line": 142
2026-06-15T13:33:59.4965972Z             },
2026-06-15T13:33:59.4966073Z             {
2026-06-15T13:33:59.4966230Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4966440Z               "line": 315
2026-06-15T13:33:59.4966540Z             },
2026-06-15T13:33:59.4966636Z             {
2026-06-15T13:33:59.4966793Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4966906Z               "line": 355
2026-06-15T13:33:59.4967004Z             },
2026-06-15T13:33:59.4967117Z             {
2026-06-15T13:33:59.4967265Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T13:33:59.4967384Z               "line": 494
2026-06-15T13:33:59.4967492Z             }
2026-06-15T13:33:59.4967597Z           ]
2026-06-15T13:33:59.4967697Z         }
2026-06-15T13:33:59.4967800Z       }
2026-06-15T13:33:59.4967909Z     },
2026-06-15T13:33:59.4968006Z     {
2026-06-15T13:33:59.4968139Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T13:33:59.4968435Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T13:33:59.4968558Z       "requiredStages": [
2026-06-15T13:33:59.4968664Z         "impl",
2026-06-15T13:33:59.4968773Z         "unit"
2026-06-15T13:33:59.4968883Z       ],
2026-06-15T13:33:59.4969073Z       "stages": {
2026-06-15T13:33:59.4969183Z         "doc": {
2026-06-15T13:33:59.4969293Z           "complete": false,
2026-06-15T13:33:59.4972622Z           "evidence": []
2026-06-15T13:33:59.4972752Z         },
2026-06-15T13:33:59.4972851Z         "impl": {
2026-06-15T13:33:59.4972974Z           "complete": true,
2026-06-15T13:33:59.4973088Z           "evidence": [
2026-06-15T13:33:59.4973201Z             {
2026-06-15T13:33:59.4973372Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4973493Z               "line": 60
2026-06-15T13:33:59.4973591Z             },
2026-06-15T13:33:59.4973692Z             {
2026-06-15T13:33:59.4973845Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4973944Z               "line": 68
2026-06-15T13:33:59.4974050Z             },
2026-06-15T13:33:59.4974150Z             {
2026-06-15T13:33:59.4974307Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4974431Z               "line": 86
2026-06-15T13:33:59.4974535Z             },
2026-06-15T13:33:59.4974646Z             {
2026-06-15T13:33:59.4974798Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4974912Z               "line": 120
2026-06-15T13:33:59.4975009Z             },
2026-06-15T13:33:59.4975117Z             {
2026-06-15T13:33:59.4975271Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4975380Z               "line": 127
2026-06-15T13:33:59.4975480Z             },
2026-06-15T13:33:59.4975576Z             {
2026-06-15T13:33:59.4975732Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4975855Z               "line": 143
2026-06-15T13:33:59.4975956Z             },
2026-06-15T13:33:59.4976066Z             {
2026-06-15T13:33:59.4976203Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:33:59.4976319Z               "line": 16
2026-06-15T13:33:59.4976428Z             }
2026-06-15T13:33:59.4976537Z           ]
2026-06-15T13:33:59.4976657Z         },
2026-06-15T13:33:59.4976761Z         "int": {
2026-06-15T13:33:59.4976881Z           "complete": false,
2026-06-15T13:33:59.4976995Z           "evidence": []
2026-06-15T13:33:59.4977100Z         },
2026-06-15T13:33:59.4977201Z         "unit": {
2026-06-15T13:33:59.4977324Z           "complete": true,
2026-06-15T13:33:59.4977443Z           "evidence": [
2026-06-15T13:33:59.4977545Z             {
2026-06-15T13:33:59.4977849Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4977964Z               "line": 199
2026-06-15T13:33:59.4978071Z             },
2026-06-15T13:33:59.4978176Z             {
2026-06-15T13:33:59.4978332Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4978450Z               "line": 218
2026-06-15T13:33:59.4978556Z             },
2026-06-15T13:33:59.4978656Z             {
2026-06-15T13:33:59.4978808Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4979114Z               "line": 234
2026-06-15T13:33:59.4979215Z             },
2026-06-15T13:33:59.4979318Z             {
2026-06-15T13:33:59.4979477Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T13:33:59.4979581Z               "line": 256
2026-06-15T13:33:59.4979695Z             },
2026-06-15T13:33:59.4979792Z             {
2026-06-15T13:33:59.4979944Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:33:59.4980058Z               "line": 124
2026-06-15T13:33:59.4980159Z             },
2026-06-15T13:33:59.4980262Z             {
2026-06-15T13:33:59.4980412Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:33:59.4980521Z               "line": 140
2026-06-15T13:33:59.4980616Z             },
2026-06-15T13:33:59.4980721Z             {
2026-06-15T13:33:59.4980859Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T13:33:59.4980977Z               "line": 155
2026-06-15T13:33:59.4981082Z             }
2026-06-15T13:33:59.4981181Z           ]
2026-06-15T13:33:59.4981279Z         }
2026-06-15T13:33:59.4981385Z       }
2026-06-15T13:33:59.4981495Z     },
2026-06-15T13:33:59.4981585Z     {
2026-06-15T13:33:59.4981719Z       "id": "REQ-NOTIF-1",
2026-06-15T13:33:59.4982143Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T13:33:59.4982252Z       "requiredStages": [
2026-06-15T13:33:59.4982363Z         "impl",
2026-06-15T13:33:59.4982467Z         "unit",
2026-06-15T13:33:59.4982576Z         "int"
2026-06-15T13:33:59.4982673Z       ],
2026-06-15T13:33:59.4982777Z       "stages": {
2026-06-15T13:33:59.4982881Z         "doc": {
2026-06-15T13:33:59.4982993Z           "complete": false,
2026-06-15T13:33:59.4983106Z           "evidence": []
2026-06-15T13:33:59.4983206Z         },
2026-06-15T13:33:59.4983303Z         "impl": {
2026-06-15T13:33:59.4983412Z           "complete": true,
2026-06-15T13:33:59.4983530Z           "evidence": [
2026-06-15T13:33:59.4983634Z             {
2026-06-15T13:33:59.4983785Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.4983903Z               "line": 514
2026-06-15T13:33:59.4984000Z             },
2026-06-15T13:33:59.4984104Z             {
2026-06-15T13:33:59.4984247Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4984362Z               "line": 30
2026-06-15T13:33:59.4984466Z             },
2026-06-15T13:33:59.4984567Z             {
2026-06-15T13:33:59.4984710Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4984819Z               "line": 69
2026-06-15T13:33:59.4984930Z             },
2026-06-15T13:33:59.4985029Z             {
2026-06-15T13:33:59.4985176Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4985278Z               "line": 93
2026-06-15T13:33:59.4985383Z             },
2026-06-15T13:33:59.4985482Z             {
2026-06-15T13:33:59.4985621Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4985744Z               "line": 107
2026-06-15T13:33:59.4985846Z             },
2026-06-15T13:33:59.4985941Z             {
2026-06-15T13:33:59.4986088Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4986203Z               "line": 142
2026-06-15T13:33:59.4986311Z             },
2026-06-15T13:33:59.4986406Z             {
2026-06-15T13:33:59.4986545Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4986787Z               "line": 187
2026-06-15T13:33:59.4986888Z             },
2026-06-15T13:33:59.4986988Z             {
2026-06-15T13:33:59.4987131Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4987250Z               "line": 258
2026-06-15T13:33:59.4987345Z             },
2026-06-15T13:33:59.4987446Z             {
2026-06-15T13:33:59.4987593Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4987698Z               "line": 372
2026-06-15T13:33:59.4987908Z             },
2026-06-15T13:33:59.4988003Z             {
2026-06-15T13:33:59.4988148Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.4988251Z               "line": 479
2026-06-15T13:33:59.4988352Z             },
2026-06-15T13:33:59.4988458Z             {
2026-06-15T13:33:59.4988613Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4988717Z               "line": 24
2026-06-15T13:33:59.4988822Z             },
2026-06-15T13:33:59.4988925Z             {
2026-06-15T13:33:59.4989160Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4989273Z               "line": 34
2026-06-15T13:33:59.4989373Z             },
2026-06-15T13:33:59.4989474Z             {
2026-06-15T13:33:59.4989621Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4989727Z               "line": 60
2026-06-15T13:33:59.4989827Z             },
2026-06-15T13:33:59.4989931Z             {
2026-06-15T13:33:59.4990075Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4990193Z               "line": 82
2026-06-15T13:33:59.4990298Z             },
2026-06-15T13:33:59.4990404Z             {
2026-06-15T13:33:59.4990556Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.4990667Z               "line": 94
2026-06-15T13:33:59.4990770Z             },
2026-06-15T13:33:59.4990875Z             {
2026-06-15T13:33:59.4991024Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.4991133Z               "line": 96
2026-06-15T13:33:59.4991238Z             },
2026-06-15T13:33:59.4991339Z             {
2026-06-15T13:33:59.4991499Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T13:33:59.4991599Z               "line": 44
2026-06-15T13:33:59.4991703Z             },
2026-06-15T13:33:59.4991812Z             {
2026-06-15T13:33:59.4991955Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.4992070Z               "line": 20
2026-06-15T13:33:59.4992173Z             },
2026-06-15T13:33:59.4992279Z             {
2026-06-15T13:33:59.4992422Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.4992536Z               "line": 30
2026-06-15T13:33:59.4992637Z             },
2026-06-15T13:33:59.4992737Z             {
2026-06-15T13:33:59.4992879Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.4992990Z               "line": 50
2026-06-15T13:33:59.4993094Z             },
2026-06-15T13:33:59.4993199Z             {
2026-06-15T13:33:59.4993342Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4993442Z               "line": 28
2026-06-15T13:33:59.4993544Z             },
2026-06-15T13:33:59.4993662Z             {
2026-06-15T13:33:59.4993800Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4993915Z               "line": 126
2026-06-15T13:33:59.4994019Z             },
2026-06-15T13:33:59.4994118Z             {
2026-06-15T13:33:59.4994261Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4994378Z               "line": 161
2026-06-15T13:33:59.4994478Z             },
2026-06-15T13:33:59.4994584Z             {
2026-06-15T13:33:59.4994726Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4994836Z               "line": 202
2026-06-15T13:33:59.4994931Z             },
2026-06-15T13:33:59.4995026Z             {
2026-06-15T13:33:59.4995166Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4995384Z               "line": 213
2026-06-15T13:33:59.4995485Z             },
2026-06-15T13:33:59.4995589Z             {
2026-06-15T13:33:59.4995732Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4995843Z               "line": 238
2026-06-15T13:33:59.4995952Z             },
2026-06-15T13:33:59.4996052Z             {
2026-06-15T13:33:59.4996186Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.4996295Z               "line": 261
2026-06-15T13:33:59.4996487Z             },
2026-06-15T13:33:59.4996590Z             {
2026-06-15T13:33:59.4996740Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.4996849Z               "line": 82
2026-06-15T13:33:59.4996947Z             }
2026-06-15T13:33:59.4997052Z           ]
2026-06-15T13:33:59.4997153Z         },
2026-06-15T13:33:59.4997261Z         "int": {
2026-06-15T13:33:59.4997381Z           "complete": true,
2026-06-15T13:33:59.4997486Z           "evidence": [
2026-06-15T13:33:59.4997605Z             {
2026-06-15T13:33:59.4997763Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.4997881Z               "line": 285
2026-06-15T13:33:59.4997982Z             },
2026-06-15T13:33:59.4998088Z             {
2026-06-15T13:33:59.4998229Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T13:33:59.4998331Z               "line": 102
2026-06-15T13:33:59.4998430Z             },
2026-06-15T13:33:59.4998535Z             {
2026-06-15T13:33:59.4998698Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4998816Z               "line": 615
2026-06-15T13:33:59.4998917Z             },
2026-06-15T13:33:59.4999097Z             {
2026-06-15T13:33:59.4999244Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.4999364Z               "line": 1008
2026-06-15T13:33:59.4999471Z             }
2026-06-15T13:33:59.4999575Z           ]
2026-06-15T13:33:59.4999681Z         },
2026-06-15T13:33:59.4999786Z         "unit": {
2026-06-15T13:33:59.4999905Z           "complete": true,
2026-06-15T13:33:59.5000020Z           "evidence": [
2026-06-15T13:33:59.5000124Z             {
2026-06-15T13:33:59.5000263Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5000373Z               "line": 572
2026-06-15T13:33:59.5000462Z             },
2026-06-15T13:33:59.5000573Z             {
2026-06-15T13:33:59.5000716Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5000820Z               "line": 636
2026-06-15T13:33:59.5000926Z             },
2026-06-15T13:33:59.5001030Z             {
2026-06-15T13:33:59.5001168Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5001274Z               "line": 740
2026-06-15T13:33:59.5001378Z             },
2026-06-15T13:33:59.5001498Z             {
2026-06-15T13:33:59.5001636Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5001755Z               "line": 772
2026-06-15T13:33:59.5001856Z             },
2026-06-15T13:33:59.5001956Z             {
2026-06-15T13:33:59.5002101Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5002217Z               "line": 840
2026-06-15T13:33:59.5002324Z             },
2026-06-15T13:33:59.5002418Z             {
2026-06-15T13:33:59.5002563Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5002677Z               "line": 898
2026-06-15T13:33:59.5002777Z             },
2026-06-15T13:33:59.5002882Z             {
2026-06-15T13:33:59.5003029Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5003145Z               "line": 1173
2026-06-15T13:33:59.5003249Z             },
2026-06-15T13:33:59.5003354Z             {
2026-06-15T13:33:59.5003502Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.5003611Z               "line": 157
2026-06-15T13:33:59.5003711Z             },
2026-06-15T13:33:59.5003808Z             {
2026-06-15T13:33:59.5003964Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.5004180Z               "line": 250
2026-06-15T13:33:59.5004278Z             },
2026-06-15T13:33:59.5004380Z             {
2026-06-15T13:33:59.5004527Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T13:33:59.5004645Z               "line": 273
2026-06-15T13:33:59.5004740Z             },
2026-06-15T13:33:59.5004840Z             {
2026-06-15T13:33:59.5004990Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.5005110Z               "line": 355
2026-06-15T13:33:59.5005300Z             },
2026-06-15T13:33:59.5005401Z             {
2026-06-15T13:33:59.5005558Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T13:33:59.5005663Z               "line": 392
2026-06-15T13:33:59.5005768Z             },
2026-06-15T13:33:59.5005869Z             {
2026-06-15T13:33:59.5006031Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T13:33:59.5006145Z               "line": 131
2026-06-15T13:33:59.5006244Z             },
2026-06-15T13:33:59.5006351Z             {
2026-06-15T13:33:59.5006498Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.5006612Z               "line": 72
2026-06-15T13:33:59.5006708Z             },
2026-06-15T13:33:59.5006816Z             {
2026-06-15T13:33:59.5006966Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T13:33:59.5007080Z               "line": 97
2026-06-15T13:33:59.5007180Z             },
2026-06-15T13:33:59.5007286Z             {
2026-06-15T13:33:59.5007432Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5007545Z               "line": 379
2026-06-15T13:33:59.5007650Z             },
2026-06-15T13:33:59.5007742Z             {
2026-06-15T13:33:59.5007884Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5008004Z               "line": 417
2026-06-15T13:33:59.5008104Z             },
2026-06-15T13:33:59.5008208Z             {
2026-06-15T13:33:59.5008352Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5008460Z               "line": 433
2026-06-15T13:33:59.5008561Z             },
2026-06-15T13:33:59.5008662Z             {
2026-06-15T13:33:59.5008808Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5008920Z               "line": 472
2026-06-15T13:33:59.5009104Z             },
2026-06-15T13:33:59.5009206Z             {
2026-06-15T13:33:59.5009352Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5009467Z               "line": 489
2026-06-15T13:33:59.5009573Z             },
2026-06-15T13:33:59.5009676Z             {
2026-06-15T13:33:59.5009818Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5009933Z               "line": 517
2026-06-15T13:33:59.5010036Z             },
2026-06-15T13:33:59.5010135Z             {
2026-06-15T13:33:59.5010280Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T13:33:59.5010388Z               "line": 548
2026-06-15T13:33:59.5010498Z             },
2026-06-15T13:33:59.5010599Z             {
2026-06-15T13:33:59.5010751Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5010862Z               "line": 621
2026-06-15T13:33:59.5010966Z             }
2026-06-15T13:33:59.5011070Z           ]
2026-06-15T13:33:59.5011172Z         }
2026-06-15T13:33:59.5011271Z       }
2026-06-15T13:33:59.5011375Z     },
2026-06-15T13:33:59.5011491Z     {
2026-06-15T13:33:59.5011610Z       "id": "REQ-NOTIF-2",
2026-06-15T13:33:59.5011919Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T13:33:59.5012048Z       "requiredStages": [
2026-06-15T13:33:59.5012145Z         "doc",
2026-06-15T13:33:59.5012253Z         "impl",
2026-06-15T13:33:59.5012349Z         "unit",
2026-06-15T13:33:59.5012455Z         "int"
2026-06-15T13:33:59.5012558Z       ],
2026-06-15T13:33:59.5012676Z       "stages": {
2026-06-15T13:33:59.5012782Z         "doc": {
2026-06-15T13:33:59.5012898Z           "complete": true,
2026-06-15T13:33:59.5013113Z           "evidence": [
2026-06-15T13:33:59.5013222Z             {
2026-06-15T13:33:59.5013346Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5013452Z               "line": 453
2026-06-15T13:33:59.5013551Z             },
2026-06-15T13:33:59.5013661Z             {
2026-06-15T13:33:59.5013785Z               "path": "docs/MANIFEST.md",
2026-06-15T13:33:59.5013904Z               "line": 76
2026-06-15T13:33:59.5014005Z             }
2026-06-15T13:33:59.5014105Z           ]
2026-06-15T13:33:59.5014310Z         },
2026-06-15T13:33:59.5014415Z         "impl": {
2026-06-15T13:33:59.5014538Z           "complete": true,
2026-06-15T13:33:59.5014644Z           "evidence": [
2026-06-15T13:33:59.5014758Z             {
2026-06-15T13:33:59.5014896Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5015012Z               "line": 287
2026-06-15T13:33:59.5015115Z             },
2026-06-15T13:33:59.5015224Z             {
2026-06-15T13:33:59.5015376Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5015489Z               "line": 301
2026-06-15T13:33:59.5015598Z             },
2026-06-15T13:33:59.5015709Z             {
2026-06-15T13:33:59.5015846Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5015952Z               "line": 326
2026-06-15T13:33:59.5016061Z             },
2026-06-15T13:33:59.5016170Z             {
2026-06-15T13:33:59.5016324Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.5016443Z               "line": 199
2026-06-15T13:33:59.5016547Z             },
2026-06-15T13:33:59.5016653Z             {
2026-06-15T13:33:59.5016800Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5016920Z               "line": 91
2026-06-15T13:33:59.5017020Z             },
2026-06-15T13:33:59.5017124Z             {
2026-06-15T13:33:59.5017263Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5017381Z               "line": 1957
2026-06-15T13:33:59.5017492Z             },
2026-06-15T13:33:59.5017593Z             {
2026-06-15T13:33:59.5017720Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5017836Z               "line": 2006
2026-06-15T13:33:59.5017941Z             },
2026-06-15T13:33:59.5018044Z             {
2026-06-15T13:33:59.5018172Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5018293Z               "line": 2085
2026-06-15T13:33:59.5018391Z             },
2026-06-15T13:33:59.5018497Z             {
2026-06-15T13:33:59.5018631Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5018739Z               "line": 2124
2026-06-15T13:33:59.5018850Z             }
2026-06-15T13:33:59.5019025Z           ]
2026-06-15T13:33:59.5019131Z         },
2026-06-15T13:33:59.5019232Z         "int": {
2026-06-15T13:33:59.5019350Z           "complete": true,
2026-06-15T13:33:59.5019470Z           "evidence": [
2026-06-15T13:33:59.5019574Z             {
2026-06-15T13:33:59.5019727Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5019842Z               "line": 741
2026-06-15T13:33:59.5019950Z             },
2026-06-15T13:33:59.5020061Z             {
2026-06-15T13:33:59.5020209Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5020332Z               "line": 1161
2026-06-15T13:33:59.5020431Z             }
2026-06-15T13:33:59.5020545Z           ]
2026-06-15T13:33:59.5020649Z         },
2026-06-15T13:33:59.5020753Z         "unit": {
2026-06-15T13:33:59.5020878Z           "complete": true,
2026-06-15T13:33:59.5020996Z           "evidence": [
2026-06-15T13:33:59.5021097Z             {
2026-06-15T13:33:59.5021239Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5021354Z               "line": 1022
2026-06-15T13:33:59.5021459Z             },
2026-06-15T13:33:59.5021568Z             {
2026-06-15T13:33:59.5021703Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5021807Z               "line": 1090
2026-06-15T13:33:59.5022042Z             },
2026-06-15T13:33:59.5022145Z             {
2026-06-15T13:33:59.5022284Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5022400Z               "line": 6687
2026-06-15T13:33:59.5022508Z             },
2026-06-15T13:33:59.5022613Z             {
2026-06-15T13:33:59.5022742Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5022861Z               "line": 6742
2026-06-15T13:33:59.5022958Z             }
2026-06-15T13:33:59.5023062Z           ]
2026-06-15T13:33:59.5023260Z         }
2026-06-15T13:33:59.5023365Z       }
2026-06-15T13:33:59.5023468Z     },
2026-06-15T13:33:59.5023567Z     {
2026-06-15T13:33:59.5023693Z       "id": "REQ-PAIR-1",
2026-06-15T13:33:59.5023830Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T13:33:59.5023950Z       "requiredStages": [
2026-06-15T13:33:59.5024050Z         "impl",
2026-06-15T13:33:59.5024154Z         "unit",
2026-06-15T13:33:59.5024260Z         "int"
2026-06-15T13:33:59.5024360Z       ],
2026-06-15T13:33:59.5024483Z       "stages": {
2026-06-15T13:33:59.5024589Z         "doc": {
2026-06-15T13:33:59.5024717Z           "complete": false,
2026-06-15T13:33:59.5024822Z           "evidence": []
2026-06-15T13:33:59.5024928Z         },
2026-06-15T13:33:59.5025037Z         "impl": {
2026-06-15T13:33:59.5025151Z           "complete": true,
2026-06-15T13:33:59.5025267Z           "evidence": [
2026-06-15T13:33:59.5025370Z             {
2026-06-15T13:33:59.5025538Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5025652Z               "line": 27
2026-06-15T13:33:59.5025760Z             },
2026-06-15T13:33:59.5025865Z             {
2026-06-15T13:33:59.5026025Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5026134Z               "line": 88
2026-06-15T13:33:59.5026230Z             },
2026-06-15T13:33:59.5026340Z             {
2026-06-15T13:33:59.5026497Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5026617Z               "line": 110
2026-06-15T13:33:59.5026726Z             },
2026-06-15T13:33:59.5026827Z             {
2026-06-15T13:33:59.5026979Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5027083Z               "line": 153
2026-06-15T13:33:59.5027189Z             },
2026-06-15T13:33:59.5027289Z             {
2026-06-15T13:33:59.5027451Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5027561Z               "line": 182
2026-06-15T13:33:59.5027670Z             },
2026-06-15T13:33:59.5027776Z             {
2026-06-15T13:33:59.5027923Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5028042Z               "line": 29
2026-06-15T13:33:59.5028143Z             },
2026-06-15T13:33:59.5028247Z             {
2026-06-15T13:33:59.5028430Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T13:33:59.5028529Z               "line": 31
2026-06-15T13:33:59.5028637Z             },
2026-06-15T13:33:59.5028742Z             {
2026-06-15T13:33:59.5028904Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5029095Z               "line": 44
2026-06-15T13:33:59.5029205Z             },
2026-06-15T13:33:59.5029309Z             {
2026-06-15T13:33:59.5029453Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5029572Z               "line": 171
2026-06-15T13:33:59.5029676Z             },
2026-06-15T13:33:59.5029777Z             {
2026-06-15T13:33:59.5029929Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5030035Z               "line": 376
2026-06-15T13:33:59.5030144Z             }
2026-06-15T13:33:59.5030239Z           ]
2026-06-15T13:33:59.5030341Z         },
2026-06-15T13:33:59.5030445Z         "int": {
2026-06-15T13:33:59.5030568Z           "complete": true,
2026-06-15T13:33:59.5030674Z           "evidence": [
2026-06-15T13:33:59.5030778Z             {
2026-06-15T13:33:59.5030943Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5031161Z               "line": 576
2026-06-15T13:33:59.5031256Z             },
2026-06-15T13:33:59.5031362Z             {
2026-06-15T13:33:59.5031523Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5031638Z               "line": 793
2026-06-15T13:33:59.5031743Z             }
2026-06-15T13:33:59.5031842Z           ]
2026-06-15T13:33:59.5031948Z         },
2026-06-15T13:33:59.5032048Z         "unit": {
2026-06-15T13:33:59.5032263Z           "complete": true,
2026-06-15T13:33:59.5032382Z           "evidence": [
2026-06-15T13:33:59.5032481Z             {
2026-06-15T13:33:59.5032650Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5032768Z               "line": 236
2026-06-15T13:33:59.5032863Z             },
2026-06-15T13:33:59.5032969Z             {
2026-06-15T13:33:59.5033115Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T13:33:59.5033231Z               "line": 349
2026-06-15T13:33:59.5033340Z             },
2026-06-15T13:33:59.5033445Z             {
2026-06-15T13:33:59.5033604Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5033720Z               "line": 194
2026-06-15T13:33:59.5033825Z             },
2026-06-15T13:33:59.5033930Z             {
2026-06-15T13:33:59.5034095Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5034200Z               "line": 216
2026-06-15T13:33:59.5034301Z             },
2026-06-15T13:33:59.5034404Z             {
2026-06-15T13:33:59.5034563Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5034686Z               "line": 230
2026-06-15T13:33:59.5034791Z             },
2026-06-15T13:33:59.5034892Z             {
2026-06-15T13:33:59.5035048Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5035154Z               "line": 242
2026-06-15T13:33:59.5035258Z             },
2026-06-15T13:33:59.5035358Z             {
2026-06-15T13:33:59.5035512Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5035615Z               "line": 256
2026-06-15T13:33:59.5035725Z             },
2026-06-15T13:33:59.5035827Z             {
2026-06-15T13:33:59.5035983Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5036098Z               "line": 270
2026-06-15T13:33:59.5036203Z             },
2026-06-15T13:33:59.5036311Z             {
2026-06-15T13:33:59.5036464Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5036585Z               "line": 277
2026-06-15T13:33:59.5036694Z             },
2026-06-15T13:33:59.5036795Z             {
2026-06-15T13:33:59.5036947Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T13:33:59.5037057Z               "line": 295
2026-06-15T13:33:59.5037153Z             },
2026-06-15T13:33:59.5037257Z             {
2026-06-15T13:33:59.5037407Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5037525Z               "line": 968
2026-06-15T13:33:59.5037629Z             },
2026-06-15T13:33:59.5037736Z             {
2026-06-15T13:33:59.5037878Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5038002Z               "line": 1051
2026-06-15T13:33:59.5038102Z             },
2026-06-15T13:33:59.5038207Z             {
2026-06-15T13:33:59.5038365Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5038487Z               "line": 1121
2026-06-15T13:33:59.5038597Z             },
2026-06-15T13:33:59.5038699Z             {
2026-06-15T13:33:59.5038855Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5039042Z               "line": 1182
2026-06-15T13:33:59.5039145Z             },
2026-06-15T13:33:59.5039249Z             {
2026-06-15T13:33:59.5039394Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5039516Z               "line": 1238
2026-06-15T13:33:59.5039727Z             },
2026-06-15T13:33:59.5039827Z             {
2026-06-15T13:33:59.5039975Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5040090Z               "line": 1457
2026-06-15T13:33:59.5040198Z             }
2026-06-15T13:33:59.5040299Z           ]
2026-06-15T13:33:59.5040403Z         }
2026-06-15T13:33:59.5040503Z       }
2026-06-15T13:33:59.5040610Z     },
2026-06-15T13:33:59.5040709Z     {
2026-06-15T13:33:59.5040813Z       "id": "REQ-PAIR-2",
2026-06-15T13:33:59.5041080Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T13:33:59.5041200Z       "requiredStages": [],
2026-06-15T13:33:59.5041310Z       "stages": {
2026-06-15T13:33:59.5041413Z         "doc": {
2026-06-15T13:33:59.5041537Z           "complete": false,
2026-06-15T13:33:59.5041656Z           "evidence": []
2026-06-15T13:33:59.5041759Z         },
2026-06-15T13:33:59.5041864Z         "impl": {
2026-06-15T13:33:59.5041985Z           "complete": false,
2026-06-15T13:33:59.5042102Z           "evidence": []
2026-06-15T13:33:59.5042208Z         },
2026-06-15T13:33:59.5042308Z         "int": {
2026-06-15T13:33:59.5042421Z           "complete": false,
2026-06-15T13:33:59.5042528Z           "evidence": []
2026-06-15T13:33:59.5042627Z         },
2026-06-15T13:33:59.5042731Z         "unit": {
2026-06-15T13:33:59.5042852Z           "complete": false,
2026-06-15T13:33:59.5042961Z           "evidence": []
2026-06-15T13:33:59.5043065Z         }
2026-06-15T13:33:59.5043171Z       }
2026-06-15T13:33:59.5043280Z     },
2026-06-15T13:33:59.5043380Z     {
2026-06-15T13:33:59.5043501Z       "id": "REQ-PAIR-3",
2026-06-15T13:33:59.5043676Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T13:33:59.5043782Z       "requiredStages": [
2026-06-15T13:33:59.5043896Z         "impl",
2026-06-15T13:33:59.5044010Z         "unit"
2026-06-15T13:33:59.5044116Z       ],
2026-06-15T13:33:59.5044229Z       "stages": {
2026-06-15T13:33:59.5044328Z         "doc": {
2026-06-15T13:33:59.5044452Z           "complete": false,
2026-06-15T13:33:59.5044570Z           "evidence": []
2026-06-15T13:33:59.5044669Z         },
2026-06-15T13:33:59.5044774Z         "impl": {
2026-06-15T13:33:59.5044894Z           "complete": true,
2026-06-15T13:33:59.5045007Z           "evidence": [
2026-06-15T13:33:59.5045109Z             {
2026-06-15T13:33:59.5045260Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5045376Z               "line": 2815
2026-06-15T13:33:59.5045489Z             },
2026-06-15T13:33:59.5045608Z             {
2026-06-15T13:33:59.5045733Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5045857Z               "line": 2884
2026-06-15T13:33:59.5045957Z             },
2026-06-15T13:33:59.5046063Z             {
2026-06-15T13:33:59.5046200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5046325Z               "line": 3265
2026-06-15T13:33:59.5046434Z             },
2026-06-15T13:33:59.5046538Z             {
2026-06-15T13:33:59.5046678Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5046791Z               "line": 4510
2026-06-15T13:33:59.5046890Z             }
2026-06-15T13:33:59.5046995Z           ]
2026-06-15T13:33:59.5047099Z         },
2026-06-15T13:33:59.5047198Z         "int": {
2026-06-15T13:33:59.5047317Z           "complete": false,
2026-06-15T13:33:59.5047428Z           "evidence": []
2026-06-15T13:33:59.5047531Z         },
2026-06-15T13:33:59.5047637Z         "unit": {
2026-06-15T13:33:59.5047742Z           "complete": true,
2026-06-15T13:33:59.5047874Z           "evidence": [
2026-06-15T13:33:59.5047971Z             {
2026-06-15T13:33:59.5048095Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5048213Z               "line": 8307
2026-06-15T13:33:59.5048315Z             },
2026-06-15T13:33:59.5048423Z             {
2026-06-15T13:33:59.5048557Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5048676Z               "line": 8522
2026-06-15T13:33:59.5048920Z             },
2026-06-15T13:33:59.5049110Z             {
2026-06-15T13:33:59.5049264Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5049367Z               "line": 9124
2026-06-15T13:33:59.5049472Z             },
2026-06-15T13:33:59.5049584Z             {
2026-06-15T13:33:59.5049710Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5049829Z               "line": 9143
2026-06-15T13:33:59.5049930Z             },
2026-06-15T13:33:59.5050029Z             {
2026-06-15T13:33:59.5050153Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5050382Z               "line": 9167
2026-06-15T13:33:59.5053340Z             },
2026-06-15T13:33:59.5053469Z             {
2026-06-15T13:33:59.5053620Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5053736Z               "line": 9186
2026-06-15T13:33:59.5053850Z             },
2026-06-15T13:33:59.5053950Z             {
2026-06-15T13:33:59.5054094Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5054218Z               "line": 9199
2026-06-15T13:33:59.5054323Z             },
2026-06-15T13:33:59.5054428Z             {
2026-06-15T13:33:59.5054551Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5054667Z               "line": 9208
2026-06-15T13:33:59.5054780Z             }
2026-06-15T13:33:59.5054879Z           ]
2026-06-15T13:33:59.5054984Z         }
2026-06-15T13:33:59.5055092Z       }
2026-06-15T13:33:59.5055195Z     },
2026-06-15T13:33:59.5055296Z     {
2026-06-15T13:33:59.5055416Z       "id": "REQ-PAIR-4",
2026-06-15T13:33:59.5055563Z       "title": "Subnet naming on first pairing",
2026-06-15T13:33:59.5055683Z       "requiredStages": [
2026-06-15T13:33:59.5055783Z         "impl",
2026-06-15T13:33:59.5055887Z         "unit"
2026-06-15T13:33:59.5055993Z       ],
2026-06-15T13:33:59.5056093Z       "stages": {
2026-06-15T13:33:59.5056207Z         "doc": {
2026-06-15T13:33:59.5056322Z           "complete": false,
2026-06-15T13:33:59.5056450Z           "evidence": []
2026-06-15T13:33:59.5056560Z         },
2026-06-15T13:33:59.5056670Z         "impl": {
2026-06-15T13:33:59.5056788Z           "complete": true,
2026-06-15T13:33:59.5056904Z           "evidence": [
2026-06-15T13:33:59.5057013Z             {
2026-06-15T13:33:59.5057166Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T13:33:59.5057286Z               "line": 174
2026-06-15T13:33:59.5057384Z             }
2026-06-15T13:33:59.5057488Z           ]
2026-06-15T13:33:59.5057593Z         },
2026-06-15T13:33:59.5057701Z         "int": {
2026-06-15T13:33:59.5057824Z           "complete": false,
2026-06-15T13:33:59.5057935Z           "evidence": []
2026-06-15T13:33:59.5058039Z         },
2026-06-15T13:33:59.5058144Z         "unit": {
2026-06-15T13:33:59.5058264Z           "complete": true,
2026-06-15T13:33:59.5058377Z           "evidence": [
2026-06-15T13:33:59.5058483Z             {
2026-06-15T13:33:59.5058650Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5058764Z               "line": 1294
2026-06-15T13:33:59.5058870Z             }
2026-06-15T13:33:59.5059074Z           ]
2026-06-15T13:33:59.5059166Z         }
2026-06-15T13:33:59.5059264Z       }
2026-06-15T13:33:59.5059365Z     },
2026-06-15T13:33:59.5059471Z     {
2026-06-15T13:33:59.5059579Z       "id": "REQ-PAIR-5",
2026-06-15T13:33:59.5059941Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T13:33:59.5060067Z       "requiredStages": [
2026-06-15T13:33:59.5060190Z         "impl",
2026-06-15T13:33:59.5060299Z         "unit",
2026-06-15T13:33:59.5060408Z         "int"
2026-06-15T13:33:59.5060514Z       ],
2026-06-15T13:33:59.5060627Z       "stages": {
2026-06-15T13:33:59.5060747Z         "doc": {
2026-06-15T13:33:59.5060867Z           "complete": false,
2026-06-15T13:33:59.5060985Z           "evidence": []
2026-06-15T13:33:59.5061096Z         },
2026-06-15T13:33:59.5061200Z         "impl": {
2026-06-15T13:33:59.5061323Z           "complete": true,
2026-06-15T13:33:59.5061581Z           "evidence": [
2026-06-15T13:33:59.5061686Z             {
2026-06-15T13:33:59.5061853Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5061967Z               "line": 44
2026-06-15T13:33:59.5062078Z             },
2026-06-15T13:33:59.5062182Z             {
2026-06-15T13:33:59.5062340Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5062458Z               "line": 96
2026-06-15T13:33:59.5062557Z             },
2026-06-15T13:33:59.5062762Z             {
2026-06-15T13:33:59.5062922Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5063047Z               "line": 107
2026-06-15T13:33:59.5063147Z             },
2026-06-15T13:33:59.5063256Z             {
2026-06-15T13:33:59.5063405Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5063528Z               "line": 124
2026-06-15T13:33:59.5063629Z             },
2026-06-15T13:33:59.5063738Z             {
2026-06-15T13:33:59.5063885Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5063991Z               "line": 155
2026-06-15T13:33:59.5064105Z             },
2026-06-15T13:33:59.5064205Z             {
2026-06-15T13:33:59.5064353Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5064467Z               "line": 195
2026-06-15T13:33:59.5064578Z             },
2026-06-15T13:33:59.5064682Z             {
2026-06-15T13:33:59.5064844Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5064959Z               "line": 251
2026-06-15T13:33:59.5065063Z             },
2026-06-15T13:33:59.5065164Z             {
2026-06-15T13:33:59.5065349Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5065458Z               "line": 33
2026-06-15T13:33:59.5065568Z             },
2026-06-15T13:33:59.5065666Z             {
2026-06-15T13:33:59.5065847Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5065962Z               "line": 45
2026-06-15T13:33:59.5066057Z             },
2026-06-15T13:33:59.5066161Z             {
2026-06-15T13:33:59.5066329Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5066447Z               "line": 59
2026-06-15T13:33:59.5066544Z             },
2026-06-15T13:33:59.5066663Z             {
2026-06-15T13:33:59.5066820Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5066948Z               "line": 376
2026-06-15T13:33:59.5067057Z             }
2026-06-15T13:33:59.5067168Z           ]
2026-06-15T13:33:59.5067268Z         },
2026-06-15T13:33:59.5067372Z         "int": {
2026-06-15T13:33:59.5067497Z           "complete": true,
2026-06-15T13:33:59.5067601Z           "evidence": [
2026-06-15T13:33:59.5067701Z             {
2026-06-15T13:33:59.5067855Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5067967Z               "line": 793
2026-06-15T13:33:59.5068092Z             },
2026-06-15T13:33:59.5068191Z             {
2026-06-15T13:33:59.5068346Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5068456Z               "line": 342
2026-06-15T13:33:59.5068562Z             }
2026-06-15T13:33:59.5068666Z           ]
2026-06-15T13:33:59.5068762Z         },
2026-06-15T13:33:59.5068872Z         "unit": {
2026-06-15T13:33:59.5069077Z           "complete": true,
2026-06-15T13:33:59.5069196Z           "evidence": [
2026-06-15T13:33:59.5069295Z             {
2026-06-15T13:33:59.5069458Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5069567Z               "line": 293
2026-06-15T13:33:59.5069672Z             },
2026-06-15T13:33:59.5069778Z             {
2026-06-15T13:33:59.5069925Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5070036Z               "line": 304
2026-06-15T13:33:59.5070139Z             },
2026-06-15T13:33:59.5070244Z             {
2026-06-15T13:33:59.5070501Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5070612Z               "line": 406
2026-06-15T13:33:59.5070718Z             },
2026-06-15T13:33:59.5070816Z             {
2026-06-15T13:33:59.5070992Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5071103Z               "line": 72
2026-06-15T13:33:59.5071211Z             },
2026-06-15T13:33:59.5071307Z             {
2026-06-15T13:33:59.5071478Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5071684Z               "line": 82
2026-06-15T13:33:59.5071798Z             },
2026-06-15T13:33:59.5071932Z             {
2026-06-15T13:33:59.5072103Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5072217Z               "line": 100
2026-06-15T13:33:59.5072314Z             },
2026-06-15T13:33:59.5072428Z             {
2026-06-15T13:33:59.5072624Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5072722Z               "line": 110
2026-06-15T13:33:59.5072833Z             },
2026-06-15T13:33:59.5072939Z             {
2026-06-15T13:33:59.5073122Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T13:33:59.5073242Z               "line": 125
2026-06-15T13:33:59.5073340Z             },
2026-06-15T13:33:59.5073440Z             {
2026-06-15T13:33:59.5073588Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5073711Z               "line": 1044
2026-06-15T13:33:59.5073826Z             },
2026-06-15T13:33:59.5073922Z             {
2026-06-15T13:33:59.5074078Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5074194Z               "line": 1110
2026-06-15T13:33:59.5074284Z             },
2026-06-15T13:33:59.5074388Z             {
2026-06-15T13:33:59.5074542Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5074660Z               "line": 1357
2026-06-15T13:33:59.5074765Z             }
2026-06-15T13:33:59.5074871Z           ]
2026-06-15T13:33:59.5074970Z         }
2026-06-15T13:33:59.5075075Z       }
2026-06-15T13:33:59.5075176Z     },
2026-06-15T13:33:59.5075280Z     {
2026-06-15T13:33:59.5075399Z       "id": "REQ-PAIR-6",
2026-06-15T13:33:59.5075700Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T13:33:59.5075820Z       "requiredStages": [
2026-06-15T13:33:59.5075923Z         "impl",
2026-06-15T13:33:59.5076027Z         "unit"
2026-06-15T13:33:59.5076123Z       ],
2026-06-15T13:33:59.5076231Z       "stages": {
2026-06-15T13:33:59.5076339Z         "doc": {
2026-06-15T13:33:59.5076446Z           "complete": false,
2026-06-15T13:33:59.5076565Z           "evidence": []
2026-06-15T13:33:59.5076668Z         },
2026-06-15T13:33:59.5076779Z         "impl": {
2026-06-15T13:33:59.5076912Z           "complete": true,
2026-06-15T13:33:59.5077027Z           "evidence": [
2026-06-15T13:33:59.5077142Z             {
2026-06-15T13:33:59.5077275Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5077390Z               "line": 2884
2026-06-15T13:33:59.5077489Z             },
2026-06-15T13:33:59.5077599Z             {
2026-06-15T13:33:59.5077729Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5077842Z               "line": 3265
2026-06-15T13:33:59.5077942Z             },
2026-06-15T13:33:59.5078048Z             {
2026-06-15T13:33:59.5078189Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.5078296Z               "line": 18
2026-06-15T13:33:59.5078401Z             },
2026-06-15T13:33:59.5078500Z             {
2026-06-15T13:33:59.5078642Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.5078747Z               "line": 49
2026-06-15T13:33:59.5078849Z             },
2026-06-15T13:33:59.5079021Z             {
2026-06-15T13:33:59.5079155Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.5079437Z               "line": 318
2026-06-15T13:33:59.5079545Z             }
2026-06-15T13:33:59.5079647Z           ]
2026-06-15T13:33:59.5079756Z         },
2026-06-15T13:33:59.5079855Z         "int": {
2026-06-15T13:33:59.5079971Z           "complete": false,
2026-06-15T13:33:59.5080079Z           "evidence": []
2026-06-15T13:33:59.5080184Z         },
2026-06-15T13:33:59.5080300Z         "unit": {
2026-06-15T13:33:59.5080409Z           "complete": true,
2026-06-15T13:33:59.5080523Z           "evidence": [
2026-06-15T13:33:59.5080718Z             {
2026-06-15T13:33:59.5080853Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5080963Z               "line": 9221
2026-06-15T13:33:59.5081071Z             },
2026-06-15T13:33:59.5081172Z             {
2026-06-15T13:33:59.5081302Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5081419Z               "line": 9238
2026-06-15T13:33:59.5081519Z             },
2026-06-15T13:33:59.5081624Z             {
2026-06-15T13:33:59.5081757Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.5081876Z               "line": 383
2026-06-15T13:33:59.5081987Z             },
2026-06-15T13:33:59.5082095Z             {
2026-06-15T13:33:59.5082230Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T13:33:59.5082330Z               "line": 392
2026-06-15T13:33:59.5082439Z             }
2026-06-15T13:33:59.5082540Z           ]
2026-06-15T13:33:59.5082644Z         }
2026-06-15T13:33:59.5082744Z       }
2026-06-15T13:33:59.5082845Z     },
2026-06-15T13:33:59.5082954Z     {
2026-06-15T13:33:59.5083068Z       "id": "REQ-PAIR-7",
2026-06-15T13:33:59.5083264Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T13:33:59.5083383Z       "requiredStages": [],
2026-06-15T13:33:59.5083480Z       "stages": {
2026-06-15T13:33:59.5083583Z         "doc": {
2026-06-15T13:33:59.5083701Z           "complete": false,
2026-06-15T13:33:59.5083807Z           "evidence": []
2026-06-15T13:33:59.5083910Z         },
2026-06-15T13:33:59.5084014Z         "impl": {
2026-06-15T13:33:59.5084134Z           "complete": false,
2026-06-15T13:33:59.5084239Z           "evidence": []
2026-06-15T13:33:59.5084338Z         },
2026-06-15T13:33:59.5084439Z         "int": {
2026-06-15T13:33:59.5084558Z           "complete": false,
2026-06-15T13:33:59.5084672Z           "evidence": []
2026-06-15T13:33:59.5084769Z         },
2026-06-15T13:33:59.5084868Z         "unit": {
2026-06-15T13:33:59.5084991Z           "complete": false,
2026-06-15T13:33:59.5085107Z           "evidence": []
2026-06-15T13:33:59.5085216Z         }
2026-06-15T13:33:59.5085315Z       }
2026-06-15T13:33:59.5085412Z     },
2026-06-15T13:33:59.5085516Z     {
2026-06-15T13:33:59.5085621Z       "id": "REQ-PAIR-8",
2026-06-15T13:33:59.5087129Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T13:33:59.5087262Z       "requiredStages": [
2026-06-15T13:33:59.5087368Z         "impl",
2026-06-15T13:33:59.5087472Z         "unit"
2026-06-15T13:33:59.5087572Z       ],
2026-06-15T13:33:59.5087688Z       "stages": {
2026-06-15T13:33:59.5087797Z         "doc": {
2026-06-15T13:33:59.5087912Z           "complete": false,
2026-06-15T13:33:59.5088035Z           "evidence": []
2026-06-15T13:33:59.5088130Z         },
2026-06-15T13:33:59.5088240Z         "impl": {
2026-06-15T13:33:59.5088355Z           "complete": true,
2026-06-15T13:33:59.5088479Z           "evidence": [
2026-06-15T13:33:59.5088575Z             {
2026-06-15T13:33:59.5088731Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5088851Z               "line": 577
2026-06-15T13:33:59.5089027Z             },
2026-06-15T13:33:59.5089269Z             {
2026-06-15T13:33:59.5089452Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5089567Z               "line": 22
2026-06-15T13:33:59.5089668Z             },
2026-06-15T13:33:59.5089767Z             {
2026-06-15T13:33:59.5089921Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5090025Z               "line": 76
2026-06-15T13:33:59.5090134Z             },
2026-06-15T13:33:59.5090235Z             {
2026-06-15T13:33:59.5090508Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5090626Z               "line": 127
2026-06-15T13:33:59.5090725Z             }
2026-06-15T13:33:59.5090822Z           ]
2026-06-15T13:33:59.5090917Z         },
2026-06-15T13:33:59.5091017Z         "int": {
2026-06-15T13:33:59.5091132Z           "complete": false,
2026-06-15T13:33:59.5091250Z           "evidence": []
2026-06-15T13:33:59.5091351Z         },
2026-06-15T13:33:59.5091457Z         "unit": {
2026-06-15T13:33:59.5091579Z           "complete": true,
2026-06-15T13:33:59.5091689Z           "evidence": [
2026-06-15T13:33:59.5091786Z             {
2026-06-15T13:33:59.5091932Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5092045Z               "line": 183
2026-06-15T13:33:59.5092151Z             },
2026-06-15T13:33:59.5092256Z             {
2026-06-15T13:33:59.5092413Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5092527Z               "line": 195
2026-06-15T13:33:59.5092627Z             },
2026-06-15T13:33:59.5092728Z             {
2026-06-15T13:33:59.5092881Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5092994Z               "line": 211
2026-06-15T13:33:59.5093095Z             },
2026-06-15T13:33:59.5093199Z             {
2026-06-15T13:33:59.5093342Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T13:33:59.5093453Z               "line": 227
2026-06-15T13:33:59.5093558Z             }
2026-06-15T13:33:59.5093657Z           ]
2026-06-15T13:33:59.5093759Z         }
2026-06-15T13:33:59.5093862Z       }
2026-06-15T13:33:59.5093968Z     },
2026-06-15T13:33:59.5094064Z     {
2026-06-15T13:33:59.5094181Z       "id": "REQ-PRES-1",
2026-06-15T13:33:59.5095610Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T13:33:59.5095733Z       "requiredStages": [
2026-06-15T13:33:59.5095842Z         "impl",
2026-06-15T13:33:59.5095943Z         "unit",
2026-06-15T13:33:59.5096052Z         "int"
2026-06-15T13:33:59.5096157Z       ],
2026-06-15T13:33:59.5096253Z       "stages": {
2026-06-15T13:33:59.5096367Z         "doc": {
2026-06-15T13:33:59.5096481Z           "complete": true,
2026-06-15T13:33:59.5096602Z           "evidence": [
2026-06-15T13:33:59.5096705Z             {
2026-06-15T13:33:59.5096825Z               "path": "docs/DEFERRED.md",
2026-06-15T13:33:59.5096936Z               "line": 11
2026-06-15T13:33:59.5097043Z             }
2026-06-15T13:33:59.5097147Z           ]
2026-06-15T13:33:59.5097248Z         },
2026-06-15T13:33:59.5097356Z         "impl": {
2026-06-15T13:33:59.5097474Z           "complete": true,
2026-06-15T13:33:59.5097585Z           "evidence": [
2026-06-15T13:33:59.5097685Z             {
2026-06-15T13:33:59.5097842Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.5097957Z               "line": 515
2026-06-15T13:33:59.5098056Z             },
2026-06-15T13:33:59.5098152Z             {
2026-06-15T13:33:59.5098300Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.5098409Z               "line": 567
2026-06-15T13:33:59.5098600Z             },
2026-06-15T13:33:59.5098695Z             {
2026-06-15T13:33:59.5098849Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5099043Z               "line": 188
2026-06-15T13:33:59.5099150Z             },
2026-06-15T13:33:59.5099249Z             {
2026-06-15T13:33:59.5099416Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5099535Z               "line": 214
2026-06-15T13:33:59.5099639Z             },
2026-06-15T13:33:59.5099738Z             {
2026-06-15T13:33:59.5099989Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5100108Z               "line": 28
2026-06-15T13:33:59.5100209Z             },
2026-06-15T13:33:59.5100318Z             {
2026-06-15T13:33:59.5100462Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5100567Z               "line": 105
2026-06-15T13:33:59.5100670Z             },
2026-06-15T13:33:59.5100776Z             {
2026-06-15T13:33:59.5100928Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5101038Z               "line": 161
2026-06-15T13:33:59.5101148Z             },
2026-06-15T13:33:59.5101257Z             {
2026-06-15T13:33:59.5101402Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5101520Z               "line": 180
2026-06-15T13:33:59.5101619Z             },
2026-06-15T13:33:59.5101730Z             {
2026-06-15T13:33:59.5101882Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5102007Z               "line": 415
2026-06-15T13:33:59.5102111Z             },
2026-06-15T13:33:59.5102206Z             {
2026-06-15T13:33:59.5102365Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5102468Z               "line": 289
2026-06-15T13:33:59.5102577Z             },
2026-06-15T13:33:59.5102668Z             {
2026-06-15T13:33:59.5102821Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5102935Z               "line": 336
2026-06-15T13:33:59.5103031Z             },
2026-06-15T13:33:59.5103136Z             {
2026-06-15T13:33:59.5103283Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5103388Z               "line": 362
2026-06-15T13:33:59.5103497Z             },
2026-06-15T13:33:59.5103602Z             {
2026-06-15T13:33:59.5103755Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5103869Z               "line": 100
2026-06-15T13:33:59.5103970Z             }
2026-06-15T13:33:59.5104079Z           ]
2026-06-15T13:33:59.5104188Z         },
2026-06-15T13:33:59.5104295Z         "int": {
2026-06-15T13:33:59.5104412Z           "complete": true,
2026-06-15T13:33:59.5104528Z           "evidence": [
2026-06-15T13:33:59.5104624Z             {
2026-06-15T13:33:59.5104784Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5104894Z               "line": 559
2026-06-15T13:33:59.5105003Z             },
2026-06-15T13:33:59.5105110Z             {
2026-06-15T13:33:59.5105254Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5105368Z               "line": 678
2026-06-15T13:33:59.5105473Z             },
2026-06-15T13:33:59.5105578Z             {
2026-06-15T13:33:59.5105721Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5105835Z               "line": 1071
2026-06-15T13:33:59.5105945Z             }
2026-06-15T13:33:59.5106050Z           ]
2026-06-15T13:33:59.5106150Z         },
2026-06-15T13:33:59.5106256Z         "unit": {
2026-06-15T13:33:59.5106378Z           "complete": true,
2026-06-15T13:33:59.5106489Z           "evidence": [
2026-06-15T13:33:59.5106603Z             {
2026-06-15T13:33:59.5106751Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5106866Z               "line": 674
2026-06-15T13:33:59.5106969Z             },
2026-06-15T13:33:59.5107075Z             {
2026-06-15T13:33:59.5107224Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5107443Z               "line": 238
2026-06-15T13:33:59.5107543Z             },
2026-06-15T13:33:59.5107646Z             {
2026-06-15T13:33:59.5107789Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5107907Z               "line": 269
2026-06-15T13:33:59.5108011Z             },
2026-06-15T13:33:59.5108111Z             {
2026-06-15T13:33:59.5108259Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5108363Z               "line": 305
2026-06-15T13:33:59.5108546Z             },
2026-06-15T13:33:59.5108645Z             {
2026-06-15T13:33:59.5108803Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T13:33:59.5108912Z               "line": 336
2026-06-15T13:33:59.5109160Z             },
2026-06-15T13:33:59.5109356Z             {
2026-06-15T13:33:59.5109551Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5109671Z               "line": 1165
2026-06-15T13:33:59.5109771Z             },
2026-06-15T13:33:59.5109880Z             {
2026-06-15T13:33:59.5110024Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5110138Z               "line": 1131
2026-06-15T13:33:59.5110241Z             }
2026-06-15T13:33:59.5110336Z           ]
2026-06-15T13:33:59.5110441Z         }
2026-06-15T13:33:59.5110545Z       }
2026-06-15T13:33:59.5110649Z     },
2026-06-15T13:33:59.5110750Z     {
2026-06-15T13:33:59.5110854Z       "id": "REQ-RC-1",
2026-06-15T13:33:59.5113005Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T13:33:59.5113132Z       "requiredStages": [
2026-06-15T13:33:59.5113247Z         "impl",
2026-06-15T13:33:59.5113348Z         "unit",
2026-06-15T13:33:59.5113451Z         "int"
2026-06-15T13:33:59.5113553Z       ],
2026-06-15T13:33:59.5113662Z       "stages": {
2026-06-15T13:33:59.5113775Z         "doc": {
2026-06-15T13:33:59.5113891Z           "complete": false,
2026-06-15T13:33:59.5114020Z           "evidence": []
2026-06-15T13:33:59.5114109Z         },
2026-06-15T13:33:59.5114215Z         "impl": {
2026-06-15T13:33:59.5114334Z           "complete": true,
2026-06-15T13:33:59.5114448Z           "evidence": [
2026-06-15T13:33:59.5114550Z             {
2026-06-15T13:33:59.5114701Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.5114822Z               "line": 895
2026-06-15T13:33:59.5114926Z             },
2026-06-15T13:33:59.5115044Z             {
2026-06-15T13:33:59.5115203Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5115311Z               "line": 1168
2026-06-15T13:33:59.5115420Z             },
2026-06-15T13:33:59.5115520Z             {
2026-06-15T13:33:59.5115680Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.5115795Z               "line": 816
2026-06-15T13:33:59.5115910Z             },
2026-06-15T13:33:59.5116018Z             {
2026-06-15T13:33:59.5116172Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.5116290Z               "line": 850
2026-06-15T13:33:59.5116395Z             },
2026-06-15T13:33:59.5116501Z             {
2026-06-15T13:33:59.5116629Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5116749Z               "line": 22
2026-06-15T13:33:59.5116858Z             },
2026-06-15T13:33:59.5116957Z             {
2026-06-15T13:33:59.5117097Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5117340Z               "line": 181
2026-06-15T13:33:59.5117441Z             }
2026-06-15T13:33:59.5117549Z           ]
2026-06-15T13:33:59.5117654Z         },
2026-06-15T13:33:59.5117760Z         "int": {
2026-06-15T13:33:59.5117873Z           "complete": true,
2026-06-15T13:33:59.5117994Z           "evidence": [
2026-06-15T13:33:59.5118094Z             {
2026-06-15T13:33:59.5118249Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5118373Z               "line": 252
2026-06-15T13:33:59.5118561Z             },
2026-06-15T13:33:59.5118667Z             {
2026-06-15T13:33:59.5118819Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5119025Z               "line": 279
2026-06-15T13:33:59.5119125Z             },
2026-06-15T13:33:59.5119234Z             {
2026-06-15T13:33:59.5119396Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5119505Z               "line": 404
2026-06-15T13:33:59.5119611Z             }
2026-06-15T13:33:59.5119720Z           ]
2026-06-15T13:33:59.5119825Z         },
2026-06-15T13:33:59.5119936Z         "unit": {
2026-06-15T13:33:59.5120058Z           "complete": true,
2026-06-15T13:33:59.5120173Z           "evidence": [
2026-06-15T13:33:59.5120265Z             {
2026-06-15T13:33:59.5120406Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.5120517Z               "line": 1098
2026-06-15T13:33:59.5120613Z             },
2026-06-15T13:33:59.5120712Z             {
2026-06-15T13:33:59.5120858Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5120978Z               "line": 421
2026-06-15T13:33:59.5121081Z             },
2026-06-15T13:33:59.5121190Z             {
2026-06-15T13:33:59.5121315Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5121433Z               "line": 450
2026-06-15T13:33:59.5121538Z             },
2026-06-15T13:33:59.5121644Z             {
2026-06-15T13:33:59.5121772Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5121878Z               "line": 463
2026-06-15T13:33:59.5121982Z             }
2026-06-15T13:33:59.5122082Z           ]
2026-06-15T13:33:59.5122188Z         }
2026-06-15T13:33:59.5122287Z       }
2026-06-15T13:33:59.5122396Z     },
2026-06-15T13:33:59.5122497Z     {
2026-06-15T13:33:59.5122621Z       "id": "REQ-RCVIEW-1",
2026-06-15T13:33:59.5127309Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T13:33:59.5127457Z       "requiredStages": [
2026-06-15T13:33:59.5127561Z         "doc",
2026-06-15T13:33:59.5127662Z         "impl",
2026-06-15T13:33:59.5127895Z         "unit",
2026-06-15T13:33:59.5127996Z         "int"
2026-06-15T13:33:59.5128099Z       ],
2026-06-15T13:33:59.5128205Z       "stages": {
2026-06-15T13:33:59.5128301Z         "doc": {
2026-06-15T13:33:59.5128414Z           "complete": true,
2026-06-15T13:33:59.5128515Z           "evidence": [
2026-06-15T13:33:59.5128621Z             {
2026-06-15T13:33:59.5128748Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5128856Z               "line": 322
2026-06-15T13:33:59.5129037Z             }
2026-06-15T13:33:59.5129280Z           ]
2026-06-15T13:33:59.5129417Z         },
2026-06-15T13:33:59.5129512Z         "impl": {
2026-06-15T13:33:59.5129628Z           "complete": true,
2026-06-15T13:33:59.5129741Z           "evidence": [
2026-06-15T13:33:59.5129847Z             {
2026-06-15T13:33:59.5130005Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T13:33:59.5130118Z               "line": 323
2026-06-15T13:33:59.5130229Z             },
2026-06-15T13:33:59.5130333Z             {
2026-06-15T13:33:59.5130491Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5130610Z               "line": 430
2026-06-15T13:33:59.5130709Z             },
2026-06-15T13:33:59.5130816Z             {
2026-06-15T13:33:59.5130962Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5131087Z               "line": 441
2026-06-15T13:33:59.5131193Z             },
2026-06-15T13:33:59.5131300Z             {
2026-06-15T13:33:59.5131453Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.5131571Z               "line": 41
2026-06-15T13:33:59.5131679Z             },
2026-06-15T13:33:59.5131784Z             {
2026-06-15T13:33:59.5131932Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.5132055Z               "line": 62
2026-06-15T13:33:59.5132157Z             },
2026-06-15T13:33:59.5132261Z             {
2026-06-15T13:33:59.5132404Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.5132523Z               "line": 255
2026-06-15T13:33:59.5132632Z             },
2026-06-15T13:33:59.5132733Z             {
2026-06-15T13:33:59.5132861Z               "path": "crates/spt/src/rc.rs",
2026-06-15T13:33:59.5132966Z               "line": 181
2026-06-15T13:33:59.5133072Z             }
2026-06-15T13:33:59.5133176Z           ]
2026-06-15T13:33:59.5133276Z         },
2026-06-15T13:33:59.5133377Z         "int": {
2026-06-15T13:33:59.5133495Z           "complete": true,
2026-06-15T13:33:59.5133615Z           "evidence": [
2026-06-15T13:33:59.5133716Z             {
2026-06-15T13:33:59.5133877Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5133988Z               "line": 789
2026-06-15T13:33:59.5134093Z             },
2026-06-15T13:33:59.5134196Z             {
2026-06-15T13:33:59.5134348Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5134463Z               "line": 829
2026-06-15T13:33:59.5134572Z             },
2026-06-15T13:33:59.5134673Z             {
2026-06-15T13:33:59.5134825Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5134944Z               "line": 876
2026-06-15T13:33:59.5135045Z             },
2026-06-15T13:33:59.5135149Z             {
2026-06-15T13:33:59.5135297Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5135412Z               "line": 988
2026-06-15T13:33:59.5135516Z             }
2026-06-15T13:33:59.5135622Z           ]
2026-06-15T13:33:59.5135736Z         },
2026-06-15T13:33:59.5135841Z         "unit": {
2026-06-15T13:33:59.5135966Z           "complete": true,
2026-06-15T13:33:59.5136083Z           "evidence": [
2026-06-15T13:33:59.5136189Z             {
2026-06-15T13:33:59.5136342Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.5136455Z               "line": 175
2026-06-15T13:33:59.5136559Z             },
2026-06-15T13:33:59.5136664Z             {
2026-06-15T13:33:59.5136819Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T13:33:59.5137048Z               "line": 195
2026-06-15T13:33:59.5137153Z             }
2026-06-15T13:33:59.5137249Z           ]
2026-06-15T13:33:59.5137349Z         }
2026-06-15T13:33:59.5137462Z       }
2026-06-15T13:33:59.5137560Z     },
2026-06-15T13:33:59.5137659Z     {
2026-06-15T13:33:59.5137787Z       "id": "REQ-REACH-1",
2026-06-15T13:33:59.5137955Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T13:33:59.5138083Z       "requiredStages": [
2026-06-15T13:33:59.5138184Z         "impl",
2026-06-15T13:33:59.5138364Z         "unit",
2026-06-15T13:33:59.5138470Z         "int"
2026-06-15T13:33:59.5138575Z       ],
2026-06-15T13:33:59.5138689Z       "stages": {
2026-06-15T13:33:59.5138789Z         "doc": {
2026-06-15T13:33:59.5138918Z           "complete": false,
2026-06-15T13:33:59.5139119Z           "evidence": []
2026-06-15T13:33:59.5139228Z         },
2026-06-15T13:33:59.5139331Z         "impl": {
2026-06-15T13:33:59.5139455Z           "complete": true,
2026-06-15T13:33:59.5139573Z           "evidence": [
2026-06-15T13:33:59.5139676Z             {
2026-06-15T13:33:59.5139830Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5139935Z               "line": 430
2026-06-15T13:33:59.5140044Z             },
2026-06-15T13:33:59.5140145Z             {
2026-06-15T13:33:59.5140287Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5140392Z               "line": 76
2026-06-15T13:33:59.5140498Z             },
2026-06-15T13:33:59.5143860Z             {
2026-06-15T13:33:59.5144056Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5144180Z               "line": 222
2026-06-15T13:33:59.5144286Z             },
2026-06-15T13:33:59.5144384Z             {
2026-06-15T13:33:59.5144538Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5144653Z               "line": 422
2026-06-15T13:33:59.5144751Z             },
2026-06-15T13:33:59.5144855Z             {
2026-06-15T13:33:59.5145005Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5145123Z               "line": 529
2026-06-15T13:33:59.5145223Z             },
2026-06-15T13:33:59.5145333Z             {
2026-06-15T13:33:59.5145480Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:33:59.5145600Z               "line": 39
2026-06-15T13:33:59.5145691Z             },
2026-06-15T13:33:59.5145795Z             {
2026-06-15T13:33:59.5145934Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.5146057Z               "line": 239
2026-06-15T13:33:59.5146163Z             },
2026-06-15T13:33:59.5146268Z             {
2026-06-15T13:33:59.5146405Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:33:59.5146516Z               "line": 88
2026-06-15T13:33:59.5146625Z             },
2026-06-15T13:33:59.5146710Z             {
2026-06-15T13:33:59.5146855Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:33:59.5146972Z               "line": 98
2026-06-15T13:33:59.5147072Z             },
2026-06-15T13:33:59.5147177Z             {
2026-06-15T13:33:59.5147327Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5147446Z               "line": 229
2026-06-15T13:33:59.5147552Z             }
2026-06-15T13:33:59.5147656Z           ]
2026-06-15T13:33:59.5147761Z         },
2026-06-15T13:33:59.5147867Z         "int": {
2026-06-15T13:33:59.5147985Z           "complete": true,
2026-06-15T13:33:59.5148095Z           "evidence": [
2026-06-15T13:33:59.5148200Z             {
2026-06-15T13:33:59.5148366Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5148482Z               "line": 415
2026-06-15T13:33:59.5148586Z             },
2026-06-15T13:33:59.5148691Z             {
2026-06-15T13:33:59.5148863Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5149064Z               "line": 516
2026-06-15T13:33:59.5149158Z             },
2026-06-15T13:33:59.5149292Z             {
2026-06-15T13:33:59.5149445Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5149703Z               "line": 904
2026-06-15T13:33:59.5149812Z             },
2026-06-15T13:33:59.5149915Z             {
2026-06-15T13:33:59.5150063Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5150180Z               "line": 1199
2026-06-15T13:33:59.5150289Z             }
2026-06-15T13:33:59.5150400Z           ]
2026-06-15T13:33:59.5150495Z         },
2026-06-15T13:33:59.5150599Z         "unit": {
2026-06-15T13:33:59.5150824Z           "complete": true,
2026-06-15T13:33:59.5150933Z           "evidence": [
2026-06-15T13:33:59.5151039Z             {
2026-06-15T13:33:59.5151186Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5151296Z               "line": 639
2026-06-15T13:33:59.5151406Z             },
2026-06-15T13:33:59.5151506Z             {
2026-06-15T13:33:59.5151654Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T13:33:59.5151758Z               "line": 660
2026-06-15T13:33:59.5151868Z             },
2026-06-15T13:33:59.5151969Z             {
2026-06-15T13:33:59.5152120Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T13:33:59.5152236Z               "line": 646
2026-06-15T13:33:59.5152336Z             },
2026-06-15T13:33:59.5152444Z             {
2026-06-15T13:33:59.5152592Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:33:59.5152696Z               "line": 93
2026-06-15T13:33:59.5152803Z             },
2026-06-15T13:33:59.5152909Z             {
2026-06-15T13:33:59.5153053Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T13:33:59.5153185Z               "line": 224
2026-06-15T13:33:59.5153291Z             },
2026-06-15T13:33:59.5153391Z             {
2026-06-15T13:33:59.5153539Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:33:59.5153657Z               "line": 96
2026-06-15T13:33:59.5153762Z             },
2026-06-15T13:33:59.5153873Z             {
2026-06-15T13:33:59.5154010Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T13:33:59.5154130Z               "line": 146
2026-06-15T13:33:59.5154236Z             },
2026-06-15T13:33:59.5154340Z             {
2026-06-15T13:33:59.5154488Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.5154593Z               "line": 529
2026-06-15T13:33:59.5154697Z             },
2026-06-15T13:33:59.5154798Z             {
2026-06-15T13:33:59.5154940Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:33:59.5155045Z               "line": 118
2026-06-15T13:33:59.5155161Z             },
2026-06-15T13:33:59.5155264Z             {
2026-06-15T13:33:59.5155396Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T13:33:59.5155512Z               "line": 148
2026-06-15T13:33:59.5155617Z             },
2026-06-15T13:33:59.5155721Z             {
2026-06-15T13:33:59.5155869Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5155973Z               "line": 804
2026-06-15T13:33:59.5156079Z             }
2026-06-15T13:33:59.5156179Z           ]
2026-06-15T13:33:59.5156283Z         }
2026-06-15T13:33:59.5156389Z       }
2026-06-15T13:33:59.5156494Z     },
2026-06-15T13:33:59.5156598Z     {
2026-06-15T13:33:59.5156713Z       "id": "REQ-REACH-2",
2026-06-15T13:33:59.5156937Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T13:33:59.5157052Z       "requiredStages": [],
2026-06-15T13:33:59.5157161Z       "stages": {
2026-06-15T13:33:59.5157266Z         "doc": {
2026-06-15T13:33:59.5157386Z           "complete": false,
2026-06-15T13:33:59.5157495Z           "evidence": []
2026-06-15T13:33:59.5157594Z         },
2026-06-15T13:33:59.5157713Z         "impl": {
2026-06-15T13:33:59.5157821Z           "complete": false,
2026-06-15T13:33:59.5157944Z           "evidence": []
2026-06-15T13:33:59.5158059Z         },
2026-06-15T13:33:59.5158164Z         "int": {
2026-06-15T13:33:59.5158277Z           "complete": false,
2026-06-15T13:33:59.5158398Z           "evidence": []
2026-06-15T13:33:59.5158685Z         },
2026-06-15T13:33:59.5158789Z         "unit": {
2026-06-15T13:33:59.5158907Z           "complete": false,
2026-06-15T13:33:59.5159094Z           "evidence": []
2026-06-15T13:33:59.5159203Z         }
2026-06-15T13:33:59.5159309Z       }
2026-06-15T13:33:59.5159427Z     },
2026-06-15T13:33:59.5159537Z     {
2026-06-15T13:33:59.5159639Z       "id": "REQ-REL-1",
2026-06-15T13:33:59.5160080Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T13:33:59.5160297Z       "requiredStages": [
2026-06-15T13:33:59.5160400Z         "doc",
2026-06-15T13:33:59.5160508Z         "impl"
2026-06-15T13:33:59.5160600Z       ],
2026-06-15T13:33:59.5160707Z       "stages": {
2026-06-15T13:33:59.5160806Z         "doc": {
2026-06-15T13:33:59.5160927Z           "complete": true,
2026-06-15T13:33:59.5161036Z           "evidence": [
2026-06-15T13:33:59.5161149Z             {
2026-06-15T13:33:59.5161398Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T13:33:59.5161517Z               "line": 3
2026-06-15T13:33:59.5161618Z             }
2026-06-15T13:33:59.5161718Z           ]
2026-06-15T13:33:59.5161823Z         },
2026-06-15T13:33:59.5161928Z         "impl": {
2026-06-15T13:33:59.5162051Z           "complete": true,
2026-06-15T13:33:59.5162171Z           "evidence": [
2026-06-15T13:33:59.5162267Z             {
2026-06-15T13:33:59.5162423Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T13:33:59.5162534Z               "line": 11
2026-06-15T13:33:59.5162642Z             },
2026-06-15T13:33:59.5162742Z             {
2026-06-15T13:33:59.5162887Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5163000Z               "line": 265
2026-06-15T13:33:59.5163099Z             }
2026-06-15T13:33:59.5163209Z           ]
2026-06-15T13:33:59.5163307Z         },
2026-06-15T13:33:59.5163416Z         "int": {
2026-06-15T13:33:59.5163537Z           "complete": false,
2026-06-15T13:33:59.5163646Z           "evidence": []
2026-06-15T13:33:59.5163750Z         },
2026-06-15T13:33:59.5163856Z         "unit": {
2026-06-15T13:33:59.5163974Z           "complete": false,
2026-06-15T13:33:59.5164079Z           "evidence": []
2026-06-15T13:33:59.5164185Z         }
2026-06-15T13:33:59.5164285Z       }
2026-06-15T13:33:59.5164389Z     },
2026-06-15T13:33:59.5164490Z     {
2026-06-15T13:33:59.5164623Z       "id": "REQ-REL-2",
2026-06-15T13:33:59.5165157Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T13:33:59.5165276Z       "requiredStages": [
2026-06-15T13:33:59.5165392Z         "impl",
2026-06-15T13:33:59.5165496Z         "int"
2026-06-15T13:33:59.5165605Z       ],
2026-06-15T13:33:59.5165702Z       "stages": {
2026-06-15T13:33:59.5165811Z         "doc": {
2026-06-15T13:33:59.5165928Z           "complete": true,
2026-06-15T13:33:59.5166029Z           "evidence": [
2026-06-15T13:33:59.5166135Z             {
2026-06-15T13:33:59.5166286Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T13:33:59.5166402Z               "line": 6
2026-06-15T13:33:59.5166506Z             }
2026-06-15T13:33:59.5166610Z           ]
2026-06-15T13:33:59.5166716Z         },
2026-06-15T13:33:59.5166821Z         "impl": {
2026-06-15T13:33:59.5166939Z           "complete": true,
2026-06-15T13:33:59.5167059Z           "evidence": [
2026-06-15T13:33:59.5167164Z             {
2026-06-15T13:33:59.5167302Z               "path": ".github/workflows/release.yml",
2026-06-15T13:33:59.5167411Z               "line": 16
2026-06-15T13:33:59.5167521Z             },
2026-06-15T13:33:59.5167617Z             {
2026-06-15T13:33:59.5167759Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5167864Z               "line": 352
2026-06-15T13:33:59.5167961Z             },
2026-06-15T13:33:59.5168192Z             {
2026-06-15T13:33:59.5168321Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5168438Z               "line": 426
2026-06-15T13:33:59.5168542Z             },
2026-06-15T13:33:59.5168648Z             {
2026-06-15T13:33:59.5168781Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5168896Z               "line": 588
2026-06-15T13:33:59.5169077Z             },
2026-06-15T13:33:59.5169181Z             {
2026-06-15T13:33:59.5169335Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5169545Z               "line": 720
2026-06-15T13:33:59.5169649Z             }
2026-06-15T13:33:59.5169744Z           ]
2026-06-15T13:33:59.5169855Z         },
2026-06-15T13:33:59.5169963Z         "int": {
2026-06-15T13:33:59.5170073Z           "complete": true,
2026-06-15T13:33:59.5170194Z           "evidence": [
2026-06-15T13:33:59.5170292Z             {
2026-06-15T13:33:59.5170460Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T13:33:59.5170570Z               "line": 13
2026-06-15T13:33:59.5170679Z             }
2026-06-15T13:33:59.5170785Z           ]
2026-06-15T13:33:59.5170881Z         },
2026-06-15T13:33:59.5170984Z         "unit": {
2026-06-15T13:33:59.5171102Z           "complete": false,
2026-06-15T13:33:59.5171221Z           "evidence": []
2026-06-15T13:33:59.5171324Z         }
2026-06-15T13:33:59.5171434Z       }
2026-06-15T13:33:59.5171535Z     },
2026-06-15T13:33:59.5171634Z     {
2026-06-15T13:33:59.5171743Z       "id": "REQ-REL-3",
2026-06-15T13:33:59.5172226Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T13:33:59.5172349Z       "requiredStages": [
2026-06-15T13:33:59.5172455Z         "impl",
2026-06-15T13:33:59.5172569Z         "unit"
2026-06-15T13:33:59.5172673Z       ],
2026-06-15T13:33:59.5172793Z       "stages": {
2026-06-15T13:33:59.5172893Z         "doc": {
2026-06-15T13:33:59.5173007Z           "complete": false,
2026-06-15T13:33:59.5173118Z           "evidence": []
2026-06-15T13:33:59.5173217Z         },
2026-06-15T13:33:59.5173332Z         "impl": {
2026-06-15T13:33:59.5173451Z           "complete": true,
2026-06-15T13:33:59.5173555Z           "evidence": [
2026-06-15T13:33:59.5173654Z             {
2026-06-15T13:33:59.5173806Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5173914Z               "line": 237
2026-06-15T13:33:59.5174020Z             },
2026-06-15T13:33:59.5174130Z             {
2026-06-15T13:33:59.5174276Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5174397Z               "line": 289
2026-06-15T13:33:59.5174492Z             },
2026-06-15T13:33:59.5174596Z             {
2026-06-15T13:33:59.5174726Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5174835Z               "line": 329
2026-06-15T13:33:59.5174940Z             },
2026-06-15T13:33:59.5175041Z             {
2026-06-15T13:33:59.5175178Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5175283Z               "line": 353
2026-06-15T13:33:59.5175388Z             },
2026-06-15T13:33:59.5175493Z             {
2026-06-15T13:33:59.5175637Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5175751Z               "line": 394
2026-06-15T13:33:59.5175860Z             }
2026-06-15T13:33:59.5175962Z           ]
2026-06-15T13:33:59.5176070Z         },
2026-06-15T13:33:59.5176170Z         "int": {
2026-06-15T13:33:59.5176295Z           "complete": false,
2026-06-15T13:33:59.5176399Z           "evidence": []
2026-06-15T13:33:59.5176493Z         },
2026-06-15T13:33:59.5176603Z         "unit": {
2026-06-15T13:33:59.5176714Z           "complete": true,
2026-06-15T13:33:59.5176822Z           "evidence": [
2026-06-15T13:33:59.5176923Z             {
2026-06-15T13:33:59.5177066Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5177175Z               "line": 992
2026-06-15T13:33:59.5177372Z             },
2026-06-15T13:33:59.5177475Z             {
2026-06-15T13:33:59.5177619Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5177747Z               "line": 1051
2026-06-15T13:33:59.5177843Z             }
2026-06-15T13:33:59.5177953Z           ]
2026-06-15T13:33:59.5178057Z         }
2026-06-15T13:33:59.5178158Z       }
2026-06-15T13:33:59.5178263Z     },
2026-06-15T13:33:59.5178367Z     {
2026-06-15T13:33:59.5178492Z       "id": "REQ-RUN-PICKER",
2026-06-15T13:33:59.5183716Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T13:33:59.5183868Z       "requiredStages": [
2026-06-15T13:33:59.5183974Z         "doc",
2026-06-15T13:33:59.5184077Z         "impl",
2026-06-15T13:33:59.5184181Z         "unit"
2026-06-15T13:33:59.5184282Z       ],
2026-06-15T13:33:59.5184394Z       "stages": {
2026-06-15T13:33:59.5184498Z         "doc": {
2026-06-15T13:33:59.5184614Z           "complete": true,
2026-06-15T13:33:59.5184728Z           "evidence": [
2026-06-15T13:33:59.5184832Z             {
2026-06-15T13:33:59.5184952Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5185057Z               "line": 326
2026-06-15T13:33:59.5185161Z             }
2026-06-15T13:33:59.5185272Z           ]
2026-06-15T13:33:59.5185371Z         },
2026-06-15T13:33:59.5185475Z         "impl": {
2026-06-15T13:33:59.5185591Z           "complete": true,
2026-06-15T13:33:59.5185700Z           "evidence": [
2026-06-15T13:33:59.5185805Z             {
2026-06-15T13:33:59.5185953Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5186063Z               "line": 861
2026-06-15T13:33:59.5186173Z             },
2026-06-15T13:33:59.5186282Z             {
2026-06-15T13:33:59.5186415Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5186536Z               "line": 871
2026-06-15T13:33:59.5186639Z             },
2026-06-15T13:33:59.5186749Z             {
2026-06-15T13:33:59.5186907Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:33:59.5187020Z               "line": 9
2026-06-15T13:33:59.5187115Z             },
2026-06-15T13:33:59.5187212Z             {
2026-06-15T13:33:59.5187353Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T13:33:59.5187459Z               "line": 67
2026-06-15T13:33:59.5187578Z             },
2026-06-15T13:33:59.5187687Z             {
2026-06-15T13:33:59.5187822Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T13:33:59.5187941Z               "line": 16
2026-06-15T13:33:59.5188151Z             },
2026-06-15T13:33:59.5188250Z             {
2026-06-15T13:33:59.5188403Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T13:33:59.5188523Z               "line": 249
2026-06-15T13:33:59.5188632Z             },
2026-06-15T13:33:59.5188733Z             {
2026-06-15T13:33:59.5188889Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5189081Z               "line": 11
2026-06-15T13:33:59.5189194Z             },
2026-06-15T13:33:59.5189303Z             {
2026-06-15T13:33:59.5189554Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5189662Z               "line": 85
2026-06-15T13:33:59.5189769Z             },
2026-06-15T13:33:59.5189873Z             {
2026-06-15T13:33:59.5190011Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5190135Z               "line": 452
2026-06-15T13:33:59.5190230Z             },
2026-06-15T13:33:59.5190336Z             {
2026-06-15T13:33:59.5190484Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5190597Z               "line": 533
2026-06-15T13:33:59.5190708Z             },
2026-06-15T13:33:59.5190813Z             {
2026-06-15T13:33:59.5190950Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5191056Z               "line": 586
2026-06-15T13:33:59.5191165Z             },
2026-06-15T13:33:59.5191265Z             {
2026-06-15T13:33:59.5191409Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5191513Z               "line": 8
2026-06-15T13:33:59.5191615Z             }
2026-06-15T13:33:59.5191733Z           ]
2026-06-15T13:33:59.5191823Z         },
2026-06-15T13:33:59.5191924Z         "int": {
2026-06-15T13:33:59.5192048Z           "complete": false,
2026-06-15T13:33:59.5192161Z           "evidence": []
2026-06-15T13:33:59.5192261Z         },
2026-06-15T13:33:59.5192365Z         "unit": {
2026-06-15T13:33:59.5192482Z           "complete": true,
2026-06-15T13:33:59.5192592Z           "evidence": [
2026-06-15T13:33:59.5192693Z             {
2026-06-15T13:33:59.5192821Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5192927Z               "line": 6221
2026-06-15T13:33:59.5193032Z             },
2026-06-15T13:33:59.5193126Z             {
2026-06-15T13:33:59.5193266Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5193370Z               "line": 6232
2026-06-15T13:33:59.5193479Z             },
2026-06-15T13:33:59.5193580Z             {
2026-06-15T13:33:59.5193722Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5193847Z               "line": 737
2026-06-15T13:33:59.5193942Z             },
2026-06-15T13:33:59.5194046Z             {
2026-06-15T13:33:59.5194186Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5194299Z               "line": 744
2026-06-15T13:33:59.5194404Z             },
2026-06-15T13:33:59.5194510Z             {
2026-06-15T13:33:59.5194661Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5194765Z               "line": 761
2026-06-15T13:33:59.5194875Z             },
2026-06-15T13:33:59.5194968Z             {
2026-06-15T13:33:59.5195106Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5195222Z               "line": 781
2026-06-15T13:33:59.5195316Z             },
2026-06-15T13:33:59.5195421Z             {
2026-06-15T13:33:59.5195551Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5195659Z               "line": 795
2026-06-15T13:33:59.5195779Z             },
2026-06-15T13:33:59.5195879Z             {
2026-06-15T13:33:59.5196022Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5196128Z               "line": 804
2026-06-15T13:33:59.5196232Z             },
2026-06-15T13:33:59.5196327Z             {
2026-06-15T13:33:59.5196476Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5196594Z               "line": 815
2026-06-15T13:33:59.5196699Z             },
2026-06-15T13:33:59.5196913Z             {
2026-06-15T13:33:59.5197048Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5197171Z               "line": 837
2026-06-15T13:33:59.5197271Z             },
2026-06-15T13:33:59.5197368Z             {
2026-06-15T13:33:59.5197523Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5197632Z               "line": 856
2026-06-15T13:33:59.5197733Z             },
2026-06-15T13:33:59.5197838Z             {
2026-06-15T13:33:59.5197990Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5198186Z               "line": 893
2026-06-15T13:33:59.5198300Z             },
2026-06-15T13:33:59.5198406Z             {
2026-06-15T13:33:59.5198538Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5198653Z               "line": 922
2026-06-15T13:33:59.5198758Z             },
2026-06-15T13:33:59.5198872Z             {
2026-06-15T13:33:59.5199078Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5199197Z               "line": 935
2026-06-15T13:33:59.5199313Z             },
2026-06-15T13:33:59.5199407Z             {
2026-06-15T13:33:59.5199549Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5199651Z               "line": 979
2026-06-15T13:33:59.5199754Z             },
2026-06-15T13:33:59.5199854Z             {
2026-06-15T13:33:59.5200001Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5200123Z               "line": 1006
2026-06-15T13:33:59.5200227Z             },
2026-06-15T13:33:59.5200334Z             {
2026-06-15T13:33:59.5200475Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T13:33:59.5200581Z               "line": 1022
2026-06-15T13:33:59.5200686Z             },
2026-06-15T13:33:59.5200790Z             {
2026-06-15T13:33:59.5200939Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5201049Z               "line": 419
2026-06-15T13:33:59.5201157Z             },
2026-06-15T13:33:59.5201254Z             {
2026-06-15T13:33:59.5201396Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5201510Z               "line": 431
2026-06-15T13:33:59.5201616Z             },
2026-06-15T13:33:59.5201721Z             {
2026-06-15T13:33:59.5201865Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5201978Z               "line": 449
2026-06-15T13:33:59.5202082Z             },
2026-06-15T13:33:59.5202189Z             {
2026-06-15T13:33:59.5202335Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5202441Z               "line": 471
2026-06-15T13:33:59.5202551Z             },
2026-06-15T13:33:59.5202650Z             {
2026-06-15T13:33:59.5202792Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5202897Z               "line": 481
2026-06-15T13:33:59.5203004Z             },
2026-06-15T13:33:59.5203104Z             {
2026-06-15T13:33:59.5203248Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T13:33:59.5203366Z               "line": 504
2026-06-15T13:33:59.5203472Z             }
2026-06-15T13:33:59.5203577Z           ]
2026-06-15T13:33:59.5203681Z         }
2026-06-15T13:33:59.5203787Z       }
2026-06-15T13:33:59.5203891Z     },
2026-06-15T13:33:59.5203981Z     {
2026-06-15T13:33:59.5204107Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T13:33:59.5209037Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T13:33:59.5209456Z       "requiredStages": [
2026-06-15T13:33:59.5209567Z         "doc",
2026-06-15T13:33:59.5209681Z         "impl",
2026-06-15T13:33:59.5209780Z         "unit"
2026-06-15T13:33:59.5209882Z       ],
2026-06-15T13:33:59.5209981Z       "stages": {
2026-06-15T13:33:59.5210081Z         "doc": {
2026-06-15T13:33:59.5210207Z           "complete": true,
2026-06-15T13:33:59.5210319Z           "evidence": [
2026-06-15T13:33:59.5210423Z             {
2026-06-15T13:33:59.5210547Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5210664Z               "line": 349
2026-06-15T13:33:59.5210773Z             }
2026-06-15T13:33:59.5210879Z           ]
2026-06-15T13:33:59.5210989Z         },
2026-06-15T13:33:59.5211098Z         "impl": {
2026-06-15T13:33:59.5211223Z           "complete": true,
2026-06-15T13:33:59.5211336Z           "evidence": [
2026-06-15T13:33:59.5211446Z             {
2026-06-15T13:33:59.5211604Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5211717Z               "line": 39
2026-06-15T13:33:59.5211823Z             },
2026-06-15T13:33:59.5211928Z             {
2026-06-15T13:33:59.5212090Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5212195Z               "line": 79
2026-06-15T13:33:59.5212300Z             },
2026-06-15T13:33:59.5212405Z             {
2026-06-15T13:33:59.5212553Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5212661Z               "line": 162
2026-06-15T13:33:59.5212768Z             }
2026-06-15T13:33:59.5212876Z           ]
2026-06-15T13:33:59.5212976Z         },
2026-06-15T13:33:59.5213078Z         "int": {
2026-06-15T13:33:59.5213196Z           "complete": false,
2026-06-15T13:33:59.5213324Z           "evidence": []
2026-06-15T13:33:59.5213424Z         },
2026-06-15T13:33:59.5213527Z         "unit": {
2026-06-15T13:33:59.5213650Z           "complete": true,
2026-06-15T13:33:59.5213751Z           "evidence": [
2026-06-15T13:33:59.5213865Z             {
2026-06-15T13:33:59.5214008Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5214132Z               "line": 206
2026-06-15T13:33:59.5214236Z             },
2026-06-15T13:33:59.5214338Z             {
2026-06-15T13:33:59.5214491Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5214604Z               "line": 222
2026-06-15T13:33:59.5214705Z             },
2026-06-15T13:33:59.5214809Z             {
2026-06-15T13:33:59.5214962Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5215091Z               "line": 238
2026-06-15T13:33:59.5215195Z             },
2026-06-15T13:33:59.5215302Z             {
2026-06-15T13:33:59.5215452Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5215563Z               "line": 251
2026-06-15T13:33:59.5215674Z             },
2026-06-15T13:33:59.5215781Z             {
2026-06-15T13:33:59.5215938Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T13:33:59.5216052Z               "line": 258
2026-06-15T13:33:59.5216246Z             }
2026-06-15T13:33:59.5216351Z           ]
2026-06-15T13:33:59.5216446Z         }
2026-06-15T13:33:59.5216551Z       }
2026-06-15T13:33:59.5216647Z     },
2026-06-15T13:33:59.5216751Z     {
2026-06-15T13:33:59.5216875Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T13:33:59.5217089Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T13:33:59.5217214Z       "requiredStages": [
2026-06-15T13:33:59.5217328Z         "impl",
2026-06-15T13:33:59.5217432Z         "unit"
2026-06-15T13:33:59.5217610Z       ],
2026-06-15T13:33:59.5217719Z       "stages": {
2026-06-15T13:33:59.5217819Z         "doc": {
2026-06-15T13:33:59.5217939Z           "complete": false,
2026-06-15T13:33:59.5218048Z           "evidence": []
2026-06-15T13:33:59.5218154Z         },
2026-06-15T13:33:59.5218259Z         "impl": {
2026-06-15T13:33:59.5218372Z           "complete": true,
2026-06-15T13:33:59.5218493Z           "evidence": [
2026-06-15T13:33:59.5218597Z             {
2026-06-15T13:33:59.5218748Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5218853Z               "line": 18
2026-06-15T13:33:59.5219029Z             },
2026-06-15T13:33:59.5219130Z             {
2026-06-15T13:33:59.5219283Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5219401Z               "line": 35
2026-06-15T13:33:59.5219498Z             },
2026-06-15T13:33:59.5219602Z             {
2026-06-15T13:33:59.5219745Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5219869Z               "line": 72
2026-06-15T13:33:59.5219978Z             }
2026-06-15T13:33:59.5220084Z           ]
2026-06-15T13:33:59.5220184Z         },
2026-06-15T13:33:59.5220293Z         "int": {
2026-06-15T13:33:59.5220423Z           "complete": false,
2026-06-15T13:33:59.5220536Z           "evidence": []
2026-06-15T13:33:59.5220636Z         },
2026-06-15T13:33:59.5220742Z         "unit": {
2026-06-15T13:33:59.5220860Z           "complete": true,
2026-06-15T13:33:59.5220983Z           "evidence": [
2026-06-15T13:33:59.5221089Z             {
2026-06-15T13:33:59.5221239Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5221343Z               "line": 239
2026-06-15T13:33:59.5221449Z             },
2026-06-15T13:33:59.5221558Z             {
2026-06-15T13:33:59.5221701Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5221816Z               "line": 256
2026-06-15T13:33:59.5221916Z             },
2026-06-15T13:33:59.5222021Z             {
2026-06-15T13:33:59.5222164Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5222282Z               "line": 265
2026-06-15T13:33:59.5222388Z             }
2026-06-15T13:33:59.5222493Z           ]
2026-06-15T13:33:59.5222592Z         }
2026-06-15T13:33:59.5222694Z       }
2026-06-15T13:33:59.5222798Z     },
2026-06-15T13:33:59.5222898Z     {
2026-06-15T13:33:59.5223037Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T13:33:59.5223217Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T13:33:59.5223347Z       "requiredStages": [
2026-06-15T13:33:59.5223460Z         "impl",
2026-06-15T13:33:59.5223566Z         "unit"
2026-06-15T13:33:59.5223671Z       ],
2026-06-15T13:33:59.5223775Z       "stages": {
2026-06-15T13:33:59.5223893Z         "doc": {
2026-06-15T13:33:59.5224012Z           "complete": false,
2026-06-15T13:33:59.5224120Z           "evidence": []
2026-06-15T13:33:59.5224234Z         },
2026-06-15T13:33:59.5224340Z         "impl": {
2026-06-15T13:33:59.5224468Z           "complete": true,
2026-06-15T13:33:59.5224578Z           "evidence": [
2026-06-15T13:33:59.5224683Z             {
2026-06-15T13:33:59.5224825Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5224936Z               "line": 474
2026-06-15T13:33:59.5225041Z             }
2026-06-15T13:33:59.5225144Z           ]
2026-06-15T13:33:59.5225255Z         },
2026-06-15T13:33:59.5225364Z         "int": {
2026-06-15T13:33:59.5225484Z           "complete": false,
2026-06-15T13:33:59.5225698Z           "evidence": []
2026-06-15T13:33:59.5225803Z         },
2026-06-15T13:33:59.5225919Z         "unit": {
2026-06-15T13:33:59.5226036Z           "complete": true,
2026-06-15T13:33:59.5226157Z           "evidence": [
2026-06-15T13:33:59.5226262Z             {
2026-06-15T13:33:59.5226417Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5226536Z               "line": 843
2026-06-15T13:33:59.5226640Z             }
2026-06-15T13:33:59.5226748Z           ]
2026-06-15T13:33:59.5226950Z         }
2026-06-15T13:33:59.5227053Z       }
2026-06-15T13:33:59.5227154Z     },
2026-06-15T13:33:59.5227264Z     {
2026-06-15T13:33:59.5227392Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T13:33:59.5227627Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T13:33:59.5227750Z       "requiredStages": [
2026-06-15T13:33:59.5227856Z         "impl",
2026-06-15T13:33:59.5227965Z         "unit",
2026-06-15T13:33:59.5228074Z         "int"
2026-06-15T13:33:59.5228175Z       ],
2026-06-15T13:33:59.5228280Z       "stages": {
2026-06-15T13:33:59.5228399Z         "doc": {
2026-06-15T13:33:59.5228523Z           "complete": false,
2026-06-15T13:33:59.5228636Z           "evidence": []
2026-06-15T13:33:59.5228743Z         },
2026-06-15T13:33:59.5228847Z         "impl": {
2026-06-15T13:33:59.5229049Z           "complete": true,
2026-06-15T13:33:59.5229153Z           "evidence": [
2026-06-15T13:33:59.5229270Z             {
2026-06-15T13:33:59.5229423Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.5229533Z               "line": 24
2026-06-15T13:33:59.5229646Z             },
2026-06-15T13:33:59.5229748Z             {
2026-06-15T13:33:59.5229894Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5230005Z               "line": 22
2026-06-15T13:33:59.5230114Z             }
2026-06-15T13:33:59.5230228Z           ]
2026-06-15T13:33:59.5230329Z         },
2026-06-15T13:33:59.5230438Z         "int": {
2026-06-15T13:33:59.5230552Z           "complete": true,
2026-06-15T13:33:59.5230668Z           "evidence": [
2026-06-15T13:33:59.5230772Z             {
2026-06-15T13:33:59.5230925Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.5231045Z               "line": 260
2026-06-15T13:33:59.5231153Z             }
2026-06-15T13:33:59.5231268Z           ]
2026-06-15T13:33:59.5231374Z         },
2026-06-15T13:33:59.5231487Z         "unit": {
2026-06-15T13:33:59.5231605Z           "complete": true,
2026-06-15T13:33:59.5231719Z           "evidence": [
2026-06-15T13:33:59.5235153Z             {
2026-06-15T13:33:59.5235338Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.5235463Z               "line": 171
2026-06-15T13:33:59.5235572Z             },
2026-06-15T13:33:59.5235677Z             {
2026-06-15T13:33:59.5235825Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.5235939Z               "line": 200
2026-06-15T13:33:59.5236044Z             },
2026-06-15T13:33:59.5236154Z             {
2026-06-15T13:33:59.5236306Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T13:33:59.5236422Z               "line": 220
2026-06-15T13:33:59.5236531Z             },
2026-06-15T13:33:59.5236631Z             {
2026-06-15T13:33:59.5236794Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5236911Z               "line": 199
2026-06-15T13:33:59.5237015Z             },
2026-06-15T13:33:59.5237120Z             {
2026-06-15T13:33:59.5237270Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5237390Z               "line": 219
2026-06-15T13:33:59.5237496Z             },
2026-06-15T13:33:59.5237599Z             {
2026-06-15T13:33:59.5237748Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5237863Z               "line": 244
2026-06-15T13:33:59.5237967Z             },
2026-06-15T13:33:59.5238073Z             {
2026-06-15T13:33:59.5238224Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5238486Z               "line": 276
2026-06-15T13:33:59.5238591Z             },
2026-06-15T13:33:59.5238697Z             {
2026-06-15T13:33:59.5238845Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5239041Z               "line": 297
2026-06-15T13:33:59.5239144Z             },
2026-06-15T13:33:59.5239255Z             {
2026-06-15T13:33:59.5239412Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T13:33:59.5239521Z               "line": 324
2026-06-15T13:33:59.5239755Z             }
2026-06-15T13:33:59.5239859Z           ]
2026-06-15T13:33:59.5239964Z         }
2026-06-15T13:33:59.5240070Z       }
2026-06-15T13:33:59.5240173Z     },
2026-06-15T13:33:59.5240269Z     {
2026-06-15T13:33:59.5240399Z       "id": "REQ-SEAM-INJECT",
2026-06-15T13:33:59.5240604Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T13:33:59.5240728Z       "requiredStages": [
2026-06-15T13:33:59.5240831Z         "impl",
2026-06-15T13:33:59.5240942Z         "unit"
2026-06-15T13:33:59.5241051Z       ],
2026-06-15T13:33:59.5241151Z       "stages": {
2026-06-15T13:33:59.5241262Z         "doc": {
2026-06-15T13:33:59.5241390Z           "complete": false,
2026-06-15T13:33:59.5241494Z           "evidence": []
2026-06-15T13:33:59.5241605Z         },
2026-06-15T13:33:59.5241708Z         "impl": {
2026-06-15T13:33:59.5241823Z           "complete": true,
2026-06-15T13:33:59.5241943Z           "evidence": [
2026-06-15T13:33:59.5242047Z             {
2026-06-15T13:33:59.5242209Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5242326Z               "line": 19
2026-06-15T13:33:59.5242434Z             },
2026-06-15T13:33:59.5242536Z             {
2026-06-15T13:33:59.5242683Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5242802Z               "line": 111
2026-06-15T13:33:59.5242908Z             }
2026-06-15T13:33:59.5243016Z           ]
2026-06-15T13:33:59.5243112Z         },
2026-06-15T13:33:59.5243222Z         "int": {
2026-06-15T13:33:59.5243345Z           "complete": false,
2026-06-15T13:33:59.5243461Z           "evidence": []
2026-06-15T13:33:59.5243561Z         },
2026-06-15T13:33:59.5243665Z         "unit": {
2026-06-15T13:33:59.5243790Z           "complete": true,
2026-06-15T13:33:59.5243904Z           "evidence": [
2026-06-15T13:33:59.5244018Z             {
2026-06-15T13:33:59.5244157Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5244280Z               "line": 345
2026-06-15T13:33:59.5244396Z             },
2026-06-15T13:33:59.5244500Z             {
2026-06-15T13:33:59.5244638Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5244749Z               "line": 365
2026-06-15T13:33:59.5244853Z             }
2026-06-15T13:33:59.5244956Z           ]
2026-06-15T13:33:59.5245061Z         }
2026-06-15T13:33:59.5245170Z       }
2026-06-15T13:33:59.5245278Z     },
2026-06-15T13:33:59.5245388Z     {
2026-06-15T13:33:59.5245508Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T13:33:59.5245688Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T13:33:59.5245799Z       "requiredStages": [
2026-06-15T13:33:59.5245912Z         "impl",
2026-06-15T13:33:59.5246023Z         "unit"
2026-06-15T13:33:59.5246128Z       ],
2026-06-15T13:33:59.5246237Z       "stages": {
2026-06-15T13:33:59.5246342Z         "doc": {
2026-06-15T13:33:59.5246466Z           "complete": false,
2026-06-15T13:33:59.5246571Z           "evidence": []
2026-06-15T13:33:59.5246677Z         },
2026-06-15T13:33:59.5246795Z         "impl": {
2026-06-15T13:33:59.5246914Z           "complete": true,
2026-06-15T13:33:59.5247034Z           "evidence": [
2026-06-15T13:33:59.5247133Z             {
2026-06-15T13:33:59.5247287Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5247396Z               "line": 18
2026-06-15T13:33:59.5247499Z             },
2026-06-15T13:33:59.5247609Z             {
2026-06-15T13:33:59.5247751Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5247974Z               "line": 353
2026-06-15T13:33:59.5248080Z             }
2026-06-15T13:33:59.5248188Z           ]
2026-06-15T13:33:59.5248289Z         },
2026-06-15T13:33:59.5248399Z         "int": {
2026-06-15T13:33:59.5248527Z           "complete": false,
2026-06-15T13:33:59.5248628Z           "evidence": []
2026-06-15T13:33:59.5248737Z         },
2026-06-15T13:33:59.5248831Z         "unit": {
2026-06-15T13:33:59.5249014Z           "complete": true,
2026-06-15T13:33:59.5249262Z           "evidence": [
2026-06-15T13:33:59.5249381Z             {
2026-06-15T13:33:59.5249524Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5249638Z               "line": 606
2026-06-15T13:33:59.5249753Z             },
2026-06-15T13:33:59.5249854Z             {
2026-06-15T13:33:59.5250000Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5250110Z               "line": 616
2026-06-15T13:33:59.5250216Z             }
2026-06-15T13:33:59.5250324Z           ]
2026-06-15T13:33:59.5250433Z         }
2026-06-15T13:33:59.5250533Z       }
2026-06-15T13:33:59.5250635Z     },
2026-06-15T13:33:59.5250743Z     {
2026-06-15T13:33:59.5250868Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T13:33:59.5251057Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T13:33:59.5251178Z       "requiredStages": [
2026-06-15T13:33:59.5251278Z         "impl",
2026-06-15T13:33:59.5251386Z         "unit",
2026-06-15T13:33:59.5251488Z         "int"
2026-06-15T13:33:59.5251596Z       ],
2026-06-15T13:33:59.5251706Z       "stages": {
2026-06-15T13:33:59.5251817Z         "doc": {
2026-06-15T13:33:59.5251935Z           "complete": false,
2026-06-15T13:33:59.5252050Z           "evidence": []
2026-06-15T13:33:59.5252151Z         },
2026-06-15T13:33:59.5252254Z         "impl": {
2026-06-15T13:33:59.5252379Z           "complete": true,
2026-06-15T13:33:59.5252490Z           "evidence": [
2026-06-15T13:33:59.5252597Z             {
2026-06-15T13:33:59.5252749Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:33:59.5252863Z               "line": 19
2026-06-15T13:33:59.5252967Z             },
2026-06-15T13:33:59.5253071Z             {
2026-06-15T13:33:59.5253215Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T13:33:59.5253324Z               "line": 12
2026-06-15T13:33:59.5253425Z             },
2026-06-15T13:33:59.5253530Z             {
2026-06-15T13:33:59.5253672Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5253792Z               "line": 241
2026-06-15T13:33:59.5253896Z             }
2026-06-15T13:33:59.5254007Z           ]
2026-06-15T13:33:59.5254111Z         },
2026-06-15T13:33:59.5254211Z         "int": {
2026-06-15T13:33:59.5254336Z           "complete": true,
2026-06-15T13:33:59.5254445Z           "evidence": [
2026-06-15T13:33:59.5254549Z             {
2026-06-15T13:33:59.5254704Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.5254821Z               "line": 259
2026-06-15T13:33:59.5254926Z             }
2026-06-15T13:33:59.5255042Z           ]
2026-06-15T13:33:59.5255145Z         },
2026-06-15T13:33:59.5255251Z         "unit": {
2026-06-15T13:33:59.5255376Z           "complete": true,
2026-06-15T13:33:59.5255488Z           "evidence": [
2026-06-15T13:33:59.5255598Z             {
2026-06-15T13:33:59.5255739Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:33:59.5255857Z               "line": 161
2026-06-15T13:33:59.5255968Z             },
2026-06-15T13:33:59.5256077Z             {
2026-06-15T13:33:59.5256220Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:33:59.5256335Z               "line": 168
2026-06-15T13:33:59.5256434Z             },
2026-06-15T13:33:59.5256529Z             {
2026-06-15T13:33:59.5256678Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T13:33:59.5256787Z               "line": 191
2026-06-15T13:33:59.5256888Z             },
2026-06-15T13:33:59.5256997Z             {
2026-06-15T13:33:59.5257242Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:33:59.5257350Z               "line": 106
2026-06-15T13:33:59.5257455Z             },
2026-06-15T13:33:59.5257561Z             {
2026-06-15T13:33:59.5257707Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:33:59.5257808Z               "line": 137
2026-06-15T13:33:59.5257923Z             },
2026-06-15T13:33:59.5258027Z             {
2026-06-15T13:33:59.5258174Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T13:33:59.5258367Z               "line": 161
2026-06-15T13:33:59.5258472Z             }
2026-06-15T13:33:59.5258578Z           ]
2026-06-15T13:33:59.5258682Z         }
2026-06-15T13:33:59.5258787Z       }
2026-06-15T13:33:59.5258888Z     },
2026-06-15T13:33:59.5259077Z     {
2026-06-15T13:33:59.5259202Z       "id": "REQ-SEAM-RESUME",
2026-06-15T13:33:59.5259455Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T13:33:59.5259578Z       "requiredStages": [
2026-06-15T13:33:59.5259692Z         "impl",
2026-06-15T13:33:59.5259794Z         "unit"
2026-06-15T13:33:59.5259893Z       ],
2026-06-15T13:33:59.5259998Z       "stages": {
2026-06-15T13:33:59.5260104Z         "doc": {
2026-06-15T13:33:59.5260227Z           "complete": false,
2026-06-15T13:33:59.5260336Z           "evidence": []
2026-06-15T13:33:59.5260443Z         },
2026-06-15T13:33:59.5260555Z         "impl": {
2026-06-15T13:33:59.5260660Z           "complete": true,
2026-06-15T13:33:59.5260772Z           "evidence": [
2026-06-15T13:33:59.5260880Z             {
2026-06-15T13:33:59.5261026Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.5261147Z               "line": 19
2026-06-15T13:33:59.5261242Z             }
2026-06-15T13:33:59.5261351Z           ]
2026-06-15T13:33:59.5261462Z         },
2026-06-15T13:33:59.5261566Z         "int": {
2026-06-15T13:33:59.5261680Z           "complete": false,
2026-06-15T13:33:59.5261800Z           "evidence": []
2026-06-15T13:33:59.5261899Z         },
2026-06-15T13:33:59.5262004Z         "unit": {
2026-06-15T13:33:59.5262119Z           "complete": true,
2026-06-15T13:33:59.5262233Z           "evidence": [
2026-06-15T13:33:59.5262329Z             {
2026-06-15T13:33:59.5262462Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.5262576Z               "line": 201
2026-06-15T13:33:59.5262682Z             },
2026-06-15T13:33:59.5262786Z             {
2026-06-15T13:33:59.5262973Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.5263148Z               "line": 223
2026-06-15T13:33:59.5263367Z             },
2026-06-15T13:33:59.5263512Z             {
2026-06-15T13:33:59.5263723Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T13:33:59.5263918Z               "line": 244
2026-06-15T13:33:59.5264061Z             }
2026-06-15T13:33:59.5264213Z           ]
2026-06-15T13:33:59.5264357Z         }
2026-06-15T13:33:59.5264499Z       }
2026-06-15T13:33:59.5264634Z     },
2026-06-15T13:33:59.5264785Z     {
2026-06-15T13:33:59.5265014Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T13:33:59.5265206Z       "title": "spawn-session seam",
2026-06-15T13:33:59.5265386Z       "requiredStages": [
2026-06-15T13:33:59.5265554Z         "impl",
2026-06-15T13:33:59.5265720Z         "unit"
2026-06-15T13:33:59.5265869Z       ],
2026-06-15T13:33:59.5266043Z       "stages": {
2026-06-15T13:33:59.5266210Z         "doc": {
2026-06-15T13:33:59.5266384Z           "complete": false,
2026-06-15T13:33:59.5266542Z           "evidence": []
2026-06-15T13:33:59.5266680Z         },
2026-06-15T13:33:59.5266818Z         "impl": {
2026-06-15T13:33:59.5266967Z           "complete": true,
2026-06-15T13:33:59.5267129Z           "evidence": [
2026-06-15T13:33:59.5267272Z             {
2026-06-15T13:33:59.5267487Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5267657Z               "line": 20
2026-06-15T13:33:59.5267807Z             }
2026-06-15T13:33:59.5267972Z           ]
2026-06-15T13:33:59.5268145Z         },
2026-06-15T13:33:59.5268484Z         "int": {
2026-06-15T13:33:59.5268676Z           "complete": false,
2026-06-15T13:33:59.5268838Z           "evidence": []
2026-06-15T13:33:59.5269085Z         },
2026-06-15T13:33:59.5269438Z         "unit": {
2026-06-15T13:33:59.5269632Z           "complete": true,
2026-06-15T13:33:59.5269757Z           "evidence": [
2026-06-15T13:33:59.5269872Z             {
2026-06-15T13:33:59.5270035Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5270153Z               "line": 435
2026-06-15T13:33:59.5270463Z             },
2026-06-15T13:33:59.5270572Z             {
2026-06-15T13:33:59.5270740Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5270863Z               "line": 442
2026-06-15T13:33:59.5270974Z             },
2026-06-15T13:33:59.5271078Z             {
2026-06-15T13:33:59.5271240Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5271365Z               "line": 452
2026-06-15T13:33:59.5271515Z             },
2026-06-15T13:33:59.5271649Z             {
2026-06-15T13:33:59.5271839Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5271959Z               "line": 458
2026-06-15T13:33:59.5272088Z             },
2026-06-15T13:33:59.5272211Z             {
2026-06-15T13:33:59.5272388Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5272521Z               "line": 483
2026-06-15T13:33:59.5272637Z             },
2026-06-15T13:33:59.5272765Z             {
2026-06-15T13:33:59.5272985Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T13:33:59.5273118Z               "line": 520
2026-06-15T13:33:59.5273247Z             }
2026-06-15T13:33:59.5273365Z           ]
2026-06-15T13:33:59.5273490Z         }
2026-06-15T13:33:59.5273614Z       }
2026-06-15T13:33:59.5273741Z     },
2026-06-15T13:33:59.5273851Z     {
2026-06-15T13:33:59.5274007Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T13:33:59.5274482Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T13:33:59.5274664Z       "requiredStages": [
2026-06-15T13:33:59.5274768Z         "impl",
2026-06-15T13:33:59.5274875Z         "unit"
2026-06-15T13:33:59.5274979Z       ],
2026-06-15T13:33:59.5275088Z       "stages": {
2026-06-15T13:33:59.5275194Z         "doc": {
2026-06-15T13:33:59.5275322Z           "complete": false,
2026-06-15T13:33:59.5275441Z           "evidence": []
2026-06-15T13:33:59.5275551Z         },
2026-06-15T13:33:59.5275656Z         "impl": {
2026-06-15T13:33:59.5275781Z           "complete": true,
2026-06-15T13:33:59.5275885Z           "evidence": [
2026-06-15T13:33:59.5275994Z             {
2026-06-15T13:33:59.5276167Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5276290Z               "line": 28
2026-06-15T13:33:59.5276396Z             },
2026-06-15T13:33:59.5276501Z             {
2026-06-15T13:33:59.5276670Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5276789Z               "line": 83
2026-06-15T13:33:59.5276893Z             }
2026-06-15T13:33:59.5277001Z           ]
2026-06-15T13:33:59.5277112Z         },
2026-06-15T13:33:59.5277217Z         "int": {
2026-06-15T13:33:59.5277340Z           "complete": false,
2026-06-15T13:33:59.5277451Z           "evidence": []
2026-06-15T13:33:59.5277564Z         },
2026-06-15T13:33:59.5277669Z         "unit": {
2026-06-15T13:33:59.5277793Z           "complete": true,
2026-06-15T13:33:59.5277907Z           "evidence": [
2026-06-15T13:33:59.5278008Z             {
2026-06-15T13:33:59.5278189Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5278303Z               "line": 286
2026-06-15T13:33:59.5278409Z             },
2026-06-15T13:33:59.5278508Z             {
2026-06-15T13:33:59.5278681Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5278794Z               "line": 297
2026-06-15T13:33:59.5278900Z             }
2026-06-15T13:33:59.5279100Z           ]
2026-06-15T13:33:59.5279426Z         }
2026-06-15T13:33:59.5279535Z       }
2026-06-15T13:33:59.5279635Z     },
2026-06-15T13:33:59.5279741Z     {
2026-06-15T13:33:59.5279864Z       "id": "REQ-SEC-1",
2026-06-15T13:33:59.5280304Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T13:33:59.5280432Z       "requiredStages": [
2026-06-15T13:33:59.5280536Z         "impl",
2026-06-15T13:33:59.5280637Z         "unit"
2026-06-15T13:33:59.5280841Z       ],
2026-06-15T13:33:59.5280938Z       "stages": {
2026-06-15T13:33:59.5281047Z         "doc": {
2026-06-15T13:33:59.5281161Z           "complete": false,
2026-06-15T13:33:59.5281281Z           "evidence": []
2026-06-15T13:33:59.5281375Z         },
2026-06-15T13:33:59.5281485Z         "impl": {
2026-06-15T13:33:59.5281601Z           "complete": true,
2026-06-15T13:33:59.5281719Z           "evidence": [
2026-06-15T13:33:59.5281830Z             {
2026-06-15T13:33:59.5281972Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5282085Z               "line": 86
2026-06-15T13:33:59.5282190Z             },
2026-06-15T13:33:59.5282296Z             {
2026-06-15T13:33:59.5282447Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5282563Z               "line": 116
2026-06-15T13:33:59.5282667Z             },
2026-06-15T13:33:59.5282771Z             {
2026-06-15T13:33:59.5282915Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5283029Z               "line": 130
2026-06-15T13:33:59.5283129Z             },
2026-06-15T13:33:59.5283239Z             {
2026-06-15T13:33:59.5283382Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5283497Z               "line": 109
2026-06-15T13:33:59.5283592Z             },
2026-06-15T13:33:59.5283701Z             {
2026-06-15T13:33:59.5283845Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5283958Z               "line": 130
2026-06-15T13:33:59.5284074Z             },
2026-06-15T13:33:59.5284179Z             {
2026-06-15T13:33:59.5284325Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5284425Z               "line": 143
2026-06-15T13:33:59.5284525Z             },
2026-06-15T13:33:59.5284628Z             {
2026-06-15T13:33:59.5284771Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5284890Z               "line": 209
2026-06-15T13:33:59.5284995Z             },
2026-06-15T13:33:59.5285100Z             {
2026-06-15T13:33:59.5285248Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5285367Z               "line": 235
2026-06-15T13:33:59.5285473Z             },
2026-06-15T13:33:59.5285572Z             {
2026-06-15T13:33:59.5285702Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5285816Z               "line": 4736
2026-06-15T13:33:59.5285925Z             }
2026-06-15T13:33:59.5286026Z           ]
2026-06-15T13:33:59.5286140Z         },
2026-06-15T13:33:59.5286239Z         "int": {
2026-06-15T13:33:59.5286360Z           "complete": false,
2026-06-15T13:33:59.5286478Z           "evidence": []
2026-06-15T13:33:59.5286582Z         },
2026-06-15T13:33:59.5286684Z         "unit": {
2026-06-15T13:33:59.5286793Z           "complete": true,
2026-06-15T13:33:59.5286902Z           "evidence": [
2026-06-15T13:33:59.5287008Z             {
2026-06-15T13:33:59.5287154Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5287258Z               "line": 142
2026-06-15T13:33:59.5287369Z             },
2026-06-15T13:33:59.5287467Z             {
2026-06-15T13:33:59.5287610Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5287724Z               "line": 194
2026-06-15T13:33:59.5287819Z             },
2026-06-15T13:33:59.5287924Z             {
2026-06-15T13:33:59.5288078Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T13:33:59.5288181Z               "line": 235
2026-06-15T13:33:59.5288292Z             },
2026-06-15T13:33:59.5288467Z             {
2026-06-15T13:33:59.5288616Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T13:33:59.5288720Z               "line": 140
2026-06-15T13:33:59.5288830Z             },
2026-06-15T13:33:59.5288931Z             {
2026-06-15T13:33:59.5289155Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5289275Z               "line": 247
2026-06-15T13:33:59.5289378Z             },
2026-06-15T13:33:59.5289489Z             {
2026-06-15T13:33:59.5289730Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5289845Z               "line": 277
2026-06-15T13:33:59.5289950Z             },
2026-06-15T13:33:59.5290052Z             {
2026-06-15T13:33:59.5290200Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5290315Z               "line": 310
2026-06-15T13:33:59.5290414Z             },
2026-06-15T13:33:59.5290515Z             {
2026-06-15T13:33:59.5290654Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5290762Z               "line": 329
2026-06-15T13:33:59.5290869Z             },
2026-06-15T13:33:59.5290973Z             {
2026-06-15T13:33:59.5291116Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5291235Z               "line": 362
2026-06-15T13:33:59.5291339Z             },
2026-06-15T13:33:59.5291445Z             {
2026-06-15T13:33:59.5291592Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T13:33:59.5291697Z               "line": 386
2026-06-15T13:33:59.5291803Z             },
2026-06-15T13:33:59.5291897Z             {
2026-06-15T13:33:59.5292031Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5292152Z               "line": 6773
2026-06-15T13:33:59.5292255Z             }
2026-06-15T13:33:59.5292360Z           ]
2026-06-15T13:33:59.5292467Z         }
2026-06-15T13:33:59.5292574Z       }
2026-06-15T13:33:59.5292673Z     },
2026-06-15T13:33:59.5292779Z     {
2026-06-15T13:33:59.5292903Z       "id": "REQ-SHELL-1",
2026-06-15T13:33:59.5293861Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T13:33:59.5293985Z       "requiredStages": [
2026-06-15T13:33:59.5294090Z         "impl",
2026-06-15T13:33:59.5294190Z         "unit",
2026-06-15T13:33:59.5294310Z         "int"
2026-06-15T13:33:59.5294405Z       ],
2026-06-15T13:33:59.5294514Z       "stages": {
2026-06-15T13:33:59.5294619Z         "doc": {
2026-06-15T13:33:59.5294748Z           "complete": false,
2026-06-15T13:33:59.5294862Z           "evidence": []
2026-06-15T13:33:59.5294966Z         },
2026-06-15T13:33:59.5295066Z         "impl": {
2026-06-15T13:33:59.5295193Z           "complete": true,
2026-06-15T13:33:59.5295298Z           "evidence": [
2026-06-15T13:33:59.5295408Z             {
2026-06-15T13:33:59.5295569Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5295675Z               "line": 189
2026-06-15T13:33:59.5295789Z             },
2026-06-15T13:33:59.5295903Z             {
2026-06-15T13:33:59.5296052Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5296170Z               "line": 216
2026-06-15T13:33:59.5296272Z             },
2026-06-15T13:33:59.5296381Z             {
2026-06-15T13:33:59.5296523Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5296638Z               "line": 27
2026-06-15T13:33:59.5296743Z             },
2026-06-15T13:33:59.5296847Z             {
2026-06-15T13:33:59.5296996Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5297105Z               "line": 52
2026-06-15T13:33:59.5297206Z             },
2026-06-15T13:33:59.5297311Z             {
2026-06-15T13:33:59.5297458Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5297677Z               "line": 132
2026-06-15T13:33:59.5297776Z             },
2026-06-15T13:33:59.5297877Z             {
2026-06-15T13:33:59.5298017Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5298136Z               "line": 164
2026-06-15T13:33:59.5298242Z             },
2026-06-15T13:33:59.5298342Z             {
2026-06-15T13:33:59.5298494Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5298599Z               "line": 22
2026-06-15T13:33:59.5298785Z             },
2026-06-15T13:33:59.5298895Z             {
2026-06-15T13:33:59.5299138Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5299243Z               "line": 65
2026-06-15T13:33:59.5299385Z             },
2026-06-15T13:33:59.5299491Z             {
2026-06-15T13:33:59.5299638Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5299758Z               "line": 76
2026-06-15T13:33:59.5299854Z             },
2026-06-15T13:33:59.5299962Z             {
2026-06-15T13:33:59.5300112Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5300225Z               "line": 150
2026-06-15T13:33:59.5300329Z             },
2026-06-15T13:33:59.5300429Z             {
2026-06-15T13:33:59.5300575Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5300679Z               "line": 209
2026-06-15T13:33:59.5300784Z             },
2026-06-15T13:33:59.5300885Z             {
2026-06-15T13:33:59.5301037Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5301152Z               "line": 254
2026-06-15T13:33:59.5301256Z             },
2026-06-15T13:33:59.5301361Z             {
2026-06-15T13:33:59.5301499Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5301613Z               "line": 276
2026-06-15T13:33:59.5301724Z             },
2026-06-15T13:33:59.5301828Z             {
2026-06-15T13:33:59.5301981Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5302101Z               "line": 289
2026-06-15T13:33:59.5302201Z             },
2026-06-15T13:33:59.5302305Z             {
2026-06-15T13:33:59.5302453Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.5302562Z               "line": 217
2026-06-15T13:33:59.5302664Z             },
2026-06-15T13:33:59.5302773Z             {
2026-06-15T13:33:59.5302911Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.5303031Z               "line": 233
2026-06-15T13:33:59.5303134Z             },
2026-06-15T13:33:59.5303243Z             {
2026-06-15T13:33:59.5303397Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.5303505Z               "line": 41
2026-06-15T13:33:59.5303606Z             },
2026-06-15T13:33:59.5303707Z             {
2026-06-15T13:33:59.5303854Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.5303965Z               "line": 222
2026-06-15T13:33:59.5304069Z             },
2026-06-15T13:33:59.5304173Z             {
2026-06-15T13:33:59.5304317Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T13:33:59.5304431Z               "line": 173
2026-06-15T13:33:59.5304535Z             },
2026-06-15T13:33:59.5304642Z             {
2026-06-15T13:33:59.5304779Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.5304894Z               "line": 319
2026-06-15T13:33:59.5305008Z             },
2026-06-15T13:33:59.5305108Z             {
2026-06-15T13:33:59.5305257Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T13:33:59.5305365Z               "line": 371
2026-06-15T13:33:59.5305469Z             },
2026-06-15T13:33:59.5305574Z             {
2026-06-15T13:33:59.5305720Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5305839Z               "line": 329
2026-06-15T13:33:59.5305945Z             },
2026-06-15T13:33:59.5306049Z             {
2026-06-15T13:33:59.5306187Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5306434Z               "line": 5450
2026-06-15T13:33:59.5306541Z             },
2026-06-15T13:33:59.5306645Z             {
2026-06-15T13:33:59.5306773Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5306884Z               "line": 5600
2026-06-15T13:33:59.5306983Z             },
2026-06-15T13:33:59.5307088Z             {
2026-06-15T13:33:59.5307208Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5307317Z               "line": 5643
2026-06-15T13:33:59.5307528Z             }
2026-06-15T13:33:59.5307622Z           ]
2026-06-15T13:33:59.5307717Z         },
2026-06-15T13:33:59.5307824Z         "int": {
2026-06-15T13:33:59.5307932Z           "complete": true,
2026-06-15T13:33:59.5308047Z           "evidence": [
2026-06-15T13:33:59.5308152Z             {
2026-06-15T13:33:59.5308312Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5308432Z               "line": 709
2026-06-15T13:33:59.5308535Z             },
2026-06-15T13:33:59.5308648Z             {
2026-06-15T13:33:59.5308797Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:33:59.5308916Z               "line": 8
2026-06-15T13:33:59.5309102Z             },
2026-06-15T13:33:59.5309207Z             {
2026-06-15T13:33:59.5309354Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T13:33:59.5309474Z               "line": 49
2026-06-15T13:33:59.5309578Z             },
2026-06-15T13:33:59.5309679Z             {
2026-06-15T13:33:59.5309836Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5309940Z               "line": 709
2026-06-15T13:33:59.5310042Z             },
2026-06-15T13:33:59.5310151Z             {
2026-06-15T13:33:59.5310299Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5310419Z               "line": 1119
2026-06-15T13:33:59.5310517Z             },
2026-06-15T13:33:59.5310623Z             {
2026-06-15T13:33:59.5310785Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T13:33:59.5310889Z               "line": 17
2026-06-15T13:33:59.5310984Z             },
2026-06-15T13:33:59.5311084Z             {
2026-06-15T13:33:59.5311229Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T13:33:59.5311335Z               "line": 14
2026-06-15T13:33:59.5311441Z             }
2026-06-15T13:33:59.5311549Z           ]
2026-06-15T13:33:59.5311650Z         },
2026-06-15T13:33:59.5311755Z         "unit": {
2026-06-15T13:33:59.5311873Z           "complete": true,
2026-06-15T13:33:59.5311989Z           "evidence": [
2026-06-15T13:33:59.5312093Z             {
2026-06-15T13:33:59.5312231Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5312356Z               "line": 234
2026-06-15T13:33:59.5312455Z             },
2026-06-15T13:33:59.5312565Z             {
2026-06-15T13:33:59.5312708Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5312817Z               "line": 267
2026-06-15T13:33:59.5312928Z             },
2026-06-15T13:33:59.5313037Z             {
2026-06-15T13:33:59.5313185Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5313296Z               "line": 307
2026-06-15T13:33:59.5313394Z             },
2026-06-15T13:33:59.5313495Z             {
2026-06-15T13:33:59.5313643Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5313756Z               "line": 577
2026-06-15T13:33:59.5313866Z             },
2026-06-15T13:33:59.5313972Z             {
2026-06-15T13:33:59.5314118Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5314229Z               "line": 650
2026-06-15T13:33:59.5314329Z             },
2026-06-15T13:33:59.5314438Z             {
2026-06-15T13:33:59.5314581Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5314695Z               "line": 794
2026-06-15T13:33:59.5314805Z             },
2026-06-15T13:33:59.5314910Z             {
2026-06-15T13:33:59.5315154Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.5315262Z               "line": 595
2026-06-15T13:33:59.5315363Z             },
2026-06-15T13:33:59.5315469Z             {
2026-06-15T13:33:59.5315625Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T13:33:59.5315730Z               "line": 399
2026-06-15T13:33:59.5315836Z             },
2026-06-15T13:33:59.5315944Z             {
2026-06-15T13:33:59.5316072Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5316285Z               "line": 7319
2026-06-15T13:33:59.5320631Z             },
2026-06-15T13:33:59.5320763Z             {
2026-06-15T13:33:59.5320917Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5321035Z               "line": 7643
2026-06-15T13:33:59.5321135Z             },
2026-06-15T13:33:59.5321237Z             {
2026-06-15T13:33:59.5321383Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5321501Z               "line": 8060
2026-06-15T13:33:59.5321611Z             }
2026-06-15T13:33:59.5321709Z           ]
2026-06-15T13:33:59.5321813Z         }
2026-06-15T13:33:59.5321919Z       }
2026-06-15T13:33:59.5322019Z     },
2026-06-15T13:33:59.5322123Z     {
2026-06-15T13:33:59.5322239Z       "id": "REQ-SHELL-2",
2026-06-15T13:33:59.5323926Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T13:33:59.5324056Z       "requiredStages": [
2026-06-15T13:33:59.5324161Z         "impl",
2026-06-15T13:33:59.5324269Z         "unit",
2026-06-15T13:33:59.5324368Z         "int"
2026-06-15T13:33:59.5324469Z       ],
2026-06-15T13:33:59.5324579Z       "stages": {
2026-06-15T13:33:59.5324678Z         "doc": {
2026-06-15T13:33:59.5324804Z           "complete": false,
2026-06-15T13:33:59.5324903Z           "evidence": []
2026-06-15T13:33:59.5325007Z         },
2026-06-15T13:33:59.5325128Z         "impl": {
2026-06-15T13:33:59.5325237Z           "complete": true,
2026-06-15T13:33:59.5325341Z           "evidence": [
2026-06-15T13:33:59.5325447Z             {
2026-06-15T13:33:59.5325603Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.5325719Z               "line": 214
2026-06-15T13:33:59.5325827Z             },
2026-06-15T13:33:59.5325937Z             {
2026-06-15T13:33:59.5326091Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.5326209Z               "line": 403
2026-06-15T13:33:59.5326309Z             },
2026-06-15T13:33:59.5326411Z             {
2026-06-15T13:33:59.5326561Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T13:33:59.5326680Z               "line": 250
2026-06-15T13:33:59.5326793Z             },
2026-06-15T13:33:59.5326897Z             {
2026-06-15T13:33:59.5327050Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.5327154Z               "line": 353
2026-06-15T13:33:59.5327259Z             },
2026-06-15T13:33:59.5327360Z             {
2026-06-15T13:33:59.5327512Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5327632Z               "line": 30
2026-06-15T13:33:59.5327737Z             },
2026-06-15T13:33:59.5327836Z             {
2026-06-15T13:33:59.5327985Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5328090Z               "line": 255
2026-06-15T13:33:59.5328189Z             },
2026-06-15T13:33:59.5328300Z             {
2026-06-15T13:33:59.5328451Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5328562Z               "line": 291
2026-06-15T13:33:59.5328657Z             },
2026-06-15T13:33:59.5328761Z             {
2026-06-15T13:33:59.5329138Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5329249Z               "line": 466
2026-06-15T13:33:59.5329366Z             },
2026-06-15T13:33:59.5329470Z             {
2026-06-15T13:33:59.5329618Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.5329731Z               "line": 348
2026-06-15T13:33:59.5329836Z             },
2026-06-15T13:33:59.5329937Z             {
2026-06-15T13:33:59.5330093Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T13:33:59.5330299Z               "line": 115
2026-06-15T13:33:59.5330403Z             },
2026-06-15T13:33:59.5330499Z             {
2026-06-15T13:33:59.5330647Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5330751Z               "line": 120
2026-06-15T13:33:59.5330853Z             },
2026-06-15T13:33:59.5330961Z             {
2026-06-15T13:33:59.5331099Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5331209Z               "line": 369
2026-06-15T13:33:59.5331314Z             },
2026-06-15T13:33:59.5331419Z             {
2026-06-15T13:33:59.5331562Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5331681Z               "line": 478
2026-06-15T13:33:59.5331782Z             },
2026-06-15T13:33:59.5331887Z             {
2026-06-15T13:33:59.5332037Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5332143Z               "line": 24
2026-06-15T13:33:59.5332250Z             },
2026-06-15T13:33:59.5332349Z             {
2026-06-15T13:33:59.5332494Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5332598Z               "line": 76
2026-06-15T13:33:59.5332698Z             },
2026-06-15T13:33:59.5332804Z             {
2026-06-15T13:33:59.5332951Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5333066Z               "line": 154
2026-06-15T13:33:59.5333166Z             },
2026-06-15T13:33:59.5333265Z             {
2026-06-15T13:33:59.5333409Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5333518Z               "line": 177
2026-06-15T13:33:59.5333627Z             },
2026-06-15T13:33:59.5333729Z             {
2026-06-15T13:33:59.5333876Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5333986Z               "line": 273
2026-06-15T13:33:59.5334091Z             },
2026-06-15T13:33:59.5334185Z             {
2026-06-15T13:33:59.5334335Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5334453Z               "line": 455
2026-06-15T13:33:59.5334558Z             },
2026-06-15T13:33:59.5334659Z             {
2026-06-15T13:33:59.5334805Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5334914Z               "line": 537
2026-06-15T13:33:59.5335019Z             },
2026-06-15T13:33:59.5335120Z             {
2026-06-15T13:33:59.5335271Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:33:59.5335378Z               "line": 27
2026-06-15T13:33:59.5335482Z             },
2026-06-15T13:33:59.5335582Z             {
2026-06-15T13:33:59.5335730Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:33:59.5335843Z               "line": 43
2026-06-15T13:33:59.5335945Z             },
2026-06-15T13:33:59.5336050Z             {
2026-06-15T13:33:59.5336197Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5336313Z               "line": 393
2026-06-15T13:33:59.5336416Z             },
2026-06-15T13:33:59.5336511Z             {
2026-06-15T13:33:59.5336642Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5336745Z               "line": 1670
2026-06-15T13:33:59.5336851Z             },
2026-06-15T13:33:59.5336952Z             {
2026-06-15T13:33:59.5337088Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5337197Z               "line": 5464
2026-06-15T13:33:59.5337298Z             },
2026-06-15T13:33:59.5337499Z             {
2026-06-15T13:33:59.5337629Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5337743Z               "line": 5525
2026-06-15T13:33:59.5337843Z             },
2026-06-15T13:33:59.5337949Z             {
2026-06-15T13:33:59.5338072Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5338178Z               "line": 5553
2026-06-15T13:33:59.5338287Z             },
2026-06-15T13:33:59.5338386Z             {
2026-06-15T13:33:59.5338512Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5338701Z               "line": 5607
2026-06-15T13:33:59.5338802Z             },
2026-06-15T13:33:59.5338903Z             {
2026-06-15T13:33:59.5339097Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5339204Z               "line": 5729
2026-06-15T13:33:59.5339307Z             },
2026-06-15T13:33:59.5339408Z             {
2026-06-15T13:33:59.5339533Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5339655Z               "line": 5789
2026-06-15T13:33:59.5339762Z             },
2026-06-15T13:33:59.5339862Z             {
2026-06-15T13:33:59.5340003Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.5340112Z               "line": 298
2026-06-15T13:33:59.5340216Z             },
2026-06-15T13:33:59.5340315Z             {
2026-06-15T13:33:59.5340444Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.5340563Z               "line": 339
2026-06-15T13:33:59.5340658Z             }
2026-06-15T13:33:59.5340764Z           ]
2026-06-15T13:33:59.5340864Z         },
2026-06-15T13:33:59.5340968Z         "int": {
2026-06-15T13:33:59.5341084Z           "complete": true,
2026-06-15T13:33:59.5341193Z           "evidence": [
2026-06-15T13:33:59.5341297Z             {
2026-06-15T13:33:59.5341446Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5341555Z               "line": 702
2026-06-15T13:33:59.5341659Z             },
2026-06-15T13:33:59.5341756Z             {
2026-06-15T13:33:59.5341907Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5342018Z               "line": 709
2026-06-15T13:33:59.5342122Z             },
2026-06-15T13:33:59.5342222Z             {
2026-06-15T13:33:59.5342367Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5342479Z               "line": 1119
2026-06-15T13:33:59.5342578Z             },
2026-06-15T13:33:59.5342674Z             {
2026-06-15T13:33:59.5342834Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T13:33:59.5342953Z               "line": 18
2026-06-15T13:33:59.5343054Z             }
2026-06-15T13:33:59.5343158Z           ]
2026-06-15T13:33:59.5343263Z         },
2026-06-15T13:33:59.5343373Z         "unit": {
2026-06-15T13:33:59.5343487Z           "complete": true,
2026-06-15T13:33:59.5343602Z           "evidence": [
2026-06-15T13:33:59.5343702Z             {
2026-06-15T13:33:59.5343849Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T13:33:59.5343960Z               "line": 550
2026-06-15T13:33:59.5344064Z             },
2026-06-15T13:33:59.5344169Z             {
2026-06-15T13:33:59.5344322Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T13:33:59.5344422Z               "line": 796
2026-06-15T13:33:59.5344512Z             },
2026-06-15T13:33:59.5344618Z             {
2026-06-15T13:33:59.5344755Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5344851Z               "line": 683
2026-06-15T13:33:59.5344952Z             },
2026-06-15T13:33:59.5345060Z             {
2026-06-15T13:33:59.5345210Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5345319Z               "line": 732
2026-06-15T13:33:59.5345422Z             },
2026-06-15T13:33:59.5345527Z             {
2026-06-15T13:33:59.5345666Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5345774Z               "line": 756
2026-06-15T13:33:59.5345880Z             },
2026-06-15T13:33:59.5346094Z             {
2026-06-15T13:33:59.5346248Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5346357Z               "line": 602
2026-06-15T13:33:59.5346462Z             },
2026-06-15T13:33:59.5346562Z             {
2026-06-15T13:33:59.5346714Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5346820Z               "line": 623
2026-06-15T13:33:59.5346920Z             },
2026-06-15T13:33:59.5347024Z             {
2026-06-15T13:33:59.5347173Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5347381Z               "line": 659
2026-06-15T13:33:59.5347488Z             },
2026-06-15T13:33:59.5347591Z             {
2026-06-15T13:33:59.5347738Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5347848Z               "line": 713
2026-06-15T13:33:59.5347946Z             },
2026-06-15T13:33:59.5348041Z             {
2026-06-15T13:33:59.5348189Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5348298Z               "line": 731
2026-06-15T13:33:59.5348399Z             },
2026-06-15T13:33:59.5348504Z             {
2026-06-15T13:33:59.5348651Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5348757Z               "line": 765
2026-06-15T13:33:59.5348861Z             },
2026-06-15T13:33:59.5349023Z             {
2026-06-15T13:33:59.5349171Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T13:33:59.5349280Z               "line": 840
2026-06-15T13:33:59.5349410Z             },
2026-06-15T13:33:59.5349514Z             {
2026-06-15T13:33:59.5349658Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T13:33:59.5349764Z               "line": 80
2026-06-15T13:33:59.5349867Z             },
2026-06-15T13:33:59.5349968Z             {
2026-06-15T13:33:59.5350093Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5350196Z               "line": 6573
2026-06-15T13:33:59.5350302Z             },
2026-06-15T13:33:59.5350408Z             {
2026-06-15T13:33:59.5350534Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5350639Z               "line": 7397
2026-06-15T13:33:59.5350744Z             },
2026-06-15T13:33:59.5350846Z             {
2026-06-15T13:33:59.5350975Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5351081Z               "line": 7467
2026-06-15T13:33:59.5351184Z             },
2026-06-15T13:33:59.5351285Z             {
2026-06-15T13:33:59.5351409Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5351523Z               "line": 7505
2026-06-15T13:33:59.5351624Z             }
2026-06-15T13:33:59.5351729Z           ]
2026-06-15T13:33:59.5351828Z         }
2026-06-15T13:33:59.5351929Z       }
2026-06-15T13:33:59.5352015Z     },
2026-06-15T13:33:59.5352119Z     {
2026-06-15T13:33:59.5352229Z       "id": "REQ-SHELL-3",
2026-06-15T13:33:59.5354095Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-15T13:33:59.5354225Z       "requiredStages": [],
2026-06-15T13:33:59.5354329Z       "stages": {
2026-06-15T13:33:59.5354433Z         "doc": {
2026-06-15T13:33:59.5354549Z           "complete": false,
2026-06-15T13:33:59.5354653Z           "evidence": []
2026-06-15T13:33:59.5354757Z         },
2026-06-15T13:33:59.5354859Z         "impl": {
2026-06-15T13:33:59.5354977Z           "complete": false,
2026-06-15T13:33:59.5355091Z           "evidence": []
2026-06-15T13:33:59.5355193Z         },
2026-06-15T13:33:59.5355396Z         "int": {
2026-06-15T13:33:59.5355512Z           "complete": false,
2026-06-15T13:33:59.5355625Z           "evidence": []
2026-06-15T13:33:59.5355726Z         },
2026-06-15T13:33:59.5355832Z         "unit": {
2026-06-15T13:33:59.5355939Z           "complete": false,
2026-06-15T13:33:59.5356053Z           "evidence": []
2026-06-15T13:33:59.5356159Z         }
2026-06-15T13:33:59.5356254Z       }
2026-06-15T13:33:59.5356358Z     },
2026-06-15T13:33:59.5356455Z     {
2026-06-15T13:33:59.5356663Z       "id": "REQ-SHELL-4",
2026-06-15T13:33:59.5358492Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-15T13:33:59.5358615Z       "requiredStages": [],
2026-06-15T13:33:59.5358721Z       "stages": {
2026-06-15T13:33:59.5358821Z         "doc": {
2026-06-15T13:33:59.5359026Z           "complete": false,
2026-06-15T13:33:59.5359136Z           "evidence": []
2026-06-15T13:33:59.5359230Z         },
2026-06-15T13:33:59.5359346Z         "impl": {
2026-06-15T13:33:59.5359469Z           "complete": false,
2026-06-15T13:33:59.5359574Z           "evidence": []
2026-06-15T13:33:59.5359675Z         },
2026-06-15T13:33:59.5359770Z         "int": {
2026-06-15T13:33:59.5359889Z           "complete": false,
2026-06-15T13:33:59.5359990Z           "evidence": []
2026-06-15T13:33:59.5360089Z         },
2026-06-15T13:33:59.5360194Z         "unit": {
2026-06-15T13:33:59.5360309Z           "complete": false,
2026-06-15T13:33:59.5360413Z           "evidence": []
2026-06-15T13:33:59.5360518Z         }
2026-06-15T13:33:59.5360624Z       }
2026-06-15T13:33:59.5360723Z     },
2026-06-15T13:33:59.5360823Z     {
2026-06-15T13:33:59.5360939Z       "id": "REQ-SHELL-5",
2026-06-15T13:33:59.5362189Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-15T13:33:59.5362313Z       "requiredStages": [
2026-06-15T13:33:59.5362412Z         "doc",
2026-06-15T13:33:59.5362518Z         "impl"
2026-06-15T13:33:59.5362617Z       ],
2026-06-15T13:33:59.5362722Z       "stages": {
2026-06-15T13:33:59.5362828Z         "doc": {
2026-06-15T13:33:59.5362951Z           "complete": true,
2026-06-15T13:33:59.5363076Z           "evidence": [
2026-06-15T13:33:59.5363181Z             {
2026-06-15T13:33:59.5363304Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5363419Z               "line": 264
2026-06-15T13:33:59.5363520Z             }
2026-06-15T13:33:59.5363618Z           ]
2026-06-15T13:33:59.5363717Z         },
2026-06-15T13:33:59.5363813Z         "impl": {
2026-06-15T13:33:59.5363921Z           "complete": true,
2026-06-15T13:33:59.5364021Z           "evidence": [
2026-06-15T13:33:59.5364126Z             {
2026-06-15T13:33:59.5364293Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T13:33:59.5364398Z               "line": 255
2026-06-15T13:33:59.5364503Z             }
2026-06-15T13:33:59.5364607Z           ]
2026-06-15T13:33:59.5364712Z         },
2026-06-15T13:33:59.5364818Z         "int": {
2026-06-15T13:33:59.5364936Z           "complete": false,
2026-06-15T13:33:59.5365051Z           "evidence": []
2026-06-15T13:33:59.5365142Z         },
2026-06-15T13:33:59.5365246Z         "unit": {
2026-06-15T13:33:59.5365471Z           "complete": false,
2026-06-15T13:33:59.5365580Z           "evidence": []
2026-06-15T13:33:59.5365686Z         }
2026-06-15T13:33:59.5365786Z       }
2026-06-15T13:33:59.5365885Z     },
2026-06-15T13:33:59.5365986Z     {
2026-06-15T13:33:59.5366110Z       "id": "REQ-START-1",
2026-06-15T13:33:59.5366344Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T13:33:59.5366462Z       "requiredStages": [
2026-06-15T13:33:59.5366571Z         "impl",
2026-06-15T13:33:59.5366772Z         "unit"
2026-06-15T13:33:59.5366871Z       ],
2026-06-15T13:33:59.5366976Z       "stages": {
2026-06-15T13:33:59.5367082Z         "doc": {
2026-06-15T13:33:59.5367205Z           "complete": false,
2026-06-15T13:33:59.5367311Z           "evidence": []
2026-06-15T13:33:59.5367415Z         },
2026-06-15T13:33:59.5367520Z         "impl": {
2026-06-15T13:33:59.5367640Z           "complete": true,
2026-06-15T13:33:59.5367754Z           "evidence": [
2026-06-15T13:33:59.5367853Z             {
2026-06-15T13:33:59.5367997Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:33:59.5368097Z               "line": 16
2026-06-15T13:33:59.5368196Z             }
2026-06-15T13:33:59.5368294Z           ]
2026-06-15T13:33:59.5368397Z         },
2026-06-15T13:33:59.5368497Z         "int": {
2026-06-15T13:33:59.5368618Z           "complete": false,
2026-06-15T13:33:59.5368735Z           "evidence": []
2026-06-15T13:33:59.5368830Z         },
2026-06-15T13:33:59.5368931Z         "unit": {
2026-06-15T13:33:59.5369137Z           "complete": true,
2026-06-15T13:33:59.5369257Z           "evidence": [
2026-06-15T13:33:59.5369371Z             {
2026-06-15T13:33:59.5369519Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:33:59.5369630Z               "line": 43
2026-06-15T13:33:59.5369734Z             },
2026-06-15T13:33:59.5369838Z             {
2026-06-15T13:33:59.5369977Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T13:33:59.5370082Z               "line": 59
2026-06-15T13:33:59.5370188Z             }
2026-06-15T13:33:59.5370292Z           ]
2026-06-15T13:33:59.5370392Z         }
2026-06-15T13:33:59.5370492Z       }
2026-06-15T13:33:59.5370597Z     },
2026-06-15T13:33:59.5370697Z     {
2026-06-15T13:33:59.5370817Z       "id": "REQ-START-2",
2026-06-15T13:33:59.5370992Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T13:33:59.5371103Z       "requiredStages": [
2026-06-15T13:33:59.5371213Z         "impl",
2026-06-15T13:33:59.5371321Z         "unit",
2026-06-15T13:33:59.5371432Z         "int"
2026-06-15T13:33:59.5371537Z       ],
2026-06-15T13:33:59.5371645Z       "stages": {
2026-06-15T13:33:59.5371749Z         "doc": {
2026-06-15T13:33:59.5371873Z           "complete": false,
2026-06-15T13:33:59.5371990Z           "evidence": []
2026-06-15T13:33:59.5372091Z         },
2026-06-15T13:33:59.5372196Z         "impl": {
2026-06-15T13:33:59.5372314Z           "complete": true,
2026-06-15T13:33:59.5372420Z           "evidence": [
2026-06-15T13:33:59.5372520Z             {
2026-06-15T13:33:59.5372662Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5372764Z               "line": 16
2026-06-15T13:33:59.5372868Z             },
2026-06-15T13:33:59.5372977Z             {
2026-06-15T13:33:59.5373121Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5373240Z               "line": 100
2026-06-15T13:33:59.5373345Z             },
2026-06-15T13:33:59.5373450Z             {
2026-06-15T13:33:59.5373597Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5373699Z               "line": 240
2026-06-15T13:33:59.5373794Z             }
2026-06-15T13:33:59.5373898Z           ]
2026-06-15T13:33:59.5373999Z         },
2026-06-15T13:33:59.5374104Z         "int": {
2026-06-15T13:33:59.5374216Z           "complete": true,
2026-06-15T13:33:59.5374336Z           "evidence": [
2026-06-15T13:33:59.5374440Z             {
2026-06-15T13:33:59.5374595Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.5374806Z               "line": 186
2026-06-15T13:33:59.5374905Z             }
2026-06-15T13:33:59.5375006Z           ]
2026-06-15T13:33:59.5375101Z         },
2026-06-15T13:33:59.5375215Z         "unit": {
2026-06-15T13:33:59.5375321Z           "complete": true,
2026-06-15T13:33:59.5375435Z           "evidence": [
2026-06-15T13:33:59.5375534Z             {
2026-06-15T13:33:59.5375684Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5375901Z               "line": 468
2026-06-15T13:33:59.5376008Z             },
2026-06-15T13:33:59.5376112Z             {
2026-06-15T13:33:59.5376246Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5376369Z               "line": 501
2026-06-15T13:33:59.5376469Z             }
2026-06-15T13:33:59.5376575Z           ]
2026-06-15T13:33:59.5376675Z         }
2026-06-15T13:33:59.5376779Z       }
2026-06-15T13:33:59.5376881Z     },
2026-06-15T13:33:59.5376981Z     {
2026-06-15T13:33:59.5377107Z       "id": "REQ-START-3",
2026-06-15T13:33:59.5377303Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T13:33:59.5377431Z       "requiredStages": [
2026-06-15T13:33:59.5377532Z         "impl",
2026-06-15T13:33:59.5377642Z         "unit",
2026-06-15T13:33:59.5377746Z         "int"
2026-06-15T13:33:59.5377847Z       ],
2026-06-15T13:33:59.5377956Z       "stages": {
2026-06-15T13:33:59.5378060Z         "doc": {
2026-06-15T13:33:59.5378185Z           "complete": false,
2026-06-15T13:33:59.5378295Z           "evidence": []
2026-06-15T13:33:59.5378394Z         },
2026-06-15T13:33:59.5378505Z         "impl": {
2026-06-15T13:33:59.5378614Z           "complete": true,
2026-06-15T13:33:59.5378733Z           "evidence": [
2026-06-15T13:33:59.5378839Z             {
2026-06-15T13:33:59.5379076Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5379188Z               "line": 23
2026-06-15T13:33:59.5379315Z             },
2026-06-15T13:33:59.5379423Z             {
2026-06-15T13:33:59.5379566Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5379683Z               "line": 205
2026-06-15T13:33:59.5379784Z             },
2026-06-15T13:33:59.5379889Z             {
2026-06-15T13:33:59.5380040Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5380151Z               "line": 221
2026-06-15T13:33:59.5380251Z             },
2026-06-15T13:33:59.5380355Z             {
2026-06-15T13:33:59.5380504Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5380613Z               "line": 17
2026-06-15T13:33:59.5380723Z             },
2026-06-15T13:33:59.5380828Z             {
2026-06-15T13:33:59.5380966Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5381082Z               "line": 43
2026-06-15T13:33:59.5381186Z             },
2026-06-15T13:33:59.5381295Z             {
2026-06-15T13:33:59.5381429Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5381552Z               "line": 101
2026-06-15T13:33:59.5381653Z             }
2026-06-15T13:33:59.5381758Z           ]
2026-06-15T13:33:59.5381862Z         },
2026-06-15T13:33:59.5381968Z         "int": {
2026-06-15T13:33:59.5382088Z           "complete": true,
2026-06-15T13:33:59.5382191Z           "evidence": [
2026-06-15T13:33:59.5382290Z             {
2026-06-15T13:33:59.5382442Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T13:33:59.5382546Z               "line": 440
2026-06-15T13:33:59.5382660Z             }
2026-06-15T13:33:59.5382756Z           ]
2026-06-15T13:33:59.5382856Z         },
2026-06-15T13:33:59.5382960Z         "unit": {
2026-06-15T13:33:59.5383085Z           "complete": true,
2026-06-15T13:33:59.5383194Z           "evidence": [
2026-06-15T13:33:59.5383300Z             {
2026-06-15T13:33:59.5383448Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5383551Z               "line": 331
2026-06-15T13:33:59.5383657Z             },
2026-06-15T13:33:59.5383861Z             {
2026-06-15T13:33:59.5384010Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5384134Z               "line": 352
2026-06-15T13:33:59.5384239Z             },
2026-06-15T13:33:59.5384349Z             {
2026-06-15T13:33:59.5384496Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T13:33:59.5384616Z               "line": 362
2026-06-15T13:33:59.5384720Z             },
2026-06-15T13:33:59.5384824Z             {
2026-06-15T13:33:59.5384962Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5385170Z               "line": 469
2026-06-15T13:33:59.5385275Z             },
2026-06-15T13:33:59.5385376Z             {
2026-06-15T13:33:59.5385518Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5385623Z               "line": 502
2026-06-15T13:33:59.5385723Z             },
2026-06-15T13:33:59.5385827Z             {
2026-06-15T13:33:59.5385962Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T13:33:59.5386085Z               "line": 510
2026-06-15T13:33:59.5386186Z             }
2026-06-15T13:33:59.5386286Z           ]
2026-06-15T13:33:59.5386376Z         }
2026-06-15T13:33:59.5386481Z       }
2026-06-15T13:33:59.5386591Z     },
2026-06-15T13:33:59.5386682Z     {
2026-06-15T13:33:59.5386801Z       "id": "REQ-START-4",
2026-06-15T13:33:59.5386976Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T13:33:59.5387101Z       "requiredStages": [
2026-06-15T13:33:59.5387207Z         "impl",
2026-06-15T13:33:59.5387320Z         "unit"
2026-06-15T13:33:59.5387416Z       ],
2026-06-15T13:33:59.5387527Z       "stages": {
2026-06-15T13:33:59.5387629Z         "doc": {
2026-06-15T13:33:59.5387748Z           "complete": false,
2026-06-15T13:33:59.5387863Z           "evidence": []
2026-06-15T13:33:59.5387958Z         },
2026-06-15T13:33:59.5388067Z         "impl": {
2026-06-15T13:33:59.5388192Z           "complete": true,
2026-06-15T13:33:59.5388296Z           "evidence": [
2026-06-15T13:33:59.5388407Z             {
2026-06-15T13:33:59.5388555Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5388678Z               "line": 461
2026-06-15T13:33:59.5388775Z             }
2026-06-15T13:33:59.5388878Z           ]
2026-06-15T13:33:59.5389075Z         },
2026-06-15T13:33:59.5389169Z         "int": {
2026-06-15T13:33:59.5389303Z           "complete": false,
2026-06-15T13:33:59.5389414Z           "evidence": []
2026-06-15T13:33:59.5389517Z         },
2026-06-15T13:33:59.5389627Z         "unit": {
2026-06-15T13:33:59.5389748Z           "complete": true,
2026-06-15T13:33:59.5389865Z           "evidence": [
2026-06-15T13:33:59.5389969Z             {
2026-06-15T13:33:59.5390130Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5390234Z               "line": 900
2026-06-15T13:33:59.5390334Z             }
2026-06-15T13:33:59.5390440Z           ]
2026-06-15T13:33:59.5390549Z         }
2026-06-15T13:33:59.5390644Z       }
2026-06-15T13:33:59.5390745Z     },
2026-06-15T13:33:59.5390844Z     {
2026-06-15T13:33:59.5390964Z       "id": "REQ-STORE-1",
2026-06-15T13:33:59.5391918Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T13:33:59.5392041Z       "requiredStages": [
2026-06-15T13:33:59.5392146Z         "impl",
2026-06-15T13:33:59.5392252Z         "unit"
2026-06-15T13:33:59.5392352Z       ],
2026-06-15T13:33:59.5392451Z       "stages": {
2026-06-15T13:33:59.5392557Z         "doc": {
2026-06-15T13:33:59.5392681Z           "complete": false,
2026-06-15T13:33:59.5392803Z           "evidence": []
2026-06-15T13:33:59.5392908Z         },
2026-06-15T13:33:59.5393012Z         "impl": {
2026-06-15T13:33:59.5393120Z           "complete": true,
2026-06-15T13:33:59.5393331Z           "evidence": [
2026-06-15T13:33:59.5393430Z             {
2026-06-15T13:33:59.5393588Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5393698Z               "line": 23
2026-06-15T13:33:59.5393792Z             },
2026-06-15T13:33:59.5393898Z             {
2026-06-15T13:33:59.5394045Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5394160Z               "line": 46
2026-06-15T13:33:59.5394256Z             },
2026-06-15T13:33:59.5394360Z             {
2026-06-15T13:33:59.5394618Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5394723Z               "line": 97
2026-06-15T13:33:59.5394819Z             },
2026-06-15T13:33:59.5394923Z             {
2026-06-15T13:33:59.5395085Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5395186Z               "line": 125
2026-06-15T13:33:59.5395294Z             },
2026-06-15T13:33:59.5395393Z             {
2026-06-15T13:33:59.5395546Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5395663Z               "line": 181
2026-06-15T13:33:59.5395763Z             },
2026-06-15T13:33:59.5395869Z             {
2026-06-15T13:33:59.5396025Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5396146Z               "line": 205
2026-06-15T13:33:59.5396246Z             },
2026-06-15T13:33:59.5396349Z             {
2026-06-15T13:33:59.5396503Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5396617Z               "line": 441
2026-06-15T13:33:59.5396722Z             },
2026-06-15T13:33:59.5396822Z             {
2026-06-15T13:33:59.5396974Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5397090Z               "line": 25
2026-06-15T13:33:59.5397194Z             },
2026-06-15T13:33:59.5397298Z             {
2026-06-15T13:33:59.5397457Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5397571Z               "line": 120
2026-06-15T13:33:59.5397666Z             },
2026-06-15T13:33:59.5397772Z             {
2026-06-15T13:33:59.5397923Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5398034Z               "line": 148
2026-06-15T13:33:59.5398138Z             },
2026-06-15T13:33:59.5398232Z             {
2026-06-15T13:33:59.5398385Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5398490Z               "line": 165
2026-06-15T13:33:59.5398594Z             },
2026-06-15T13:33:59.5398705Z             {
2026-06-15T13:33:59.5398856Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5399053Z               "line": 180
2026-06-15T13:33:59.5399153Z             },
2026-06-15T13:33:59.5399262Z             {
2026-06-15T13:33:59.5399424Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5399533Z               "line": 198
2026-06-15T13:33:59.5399635Z             },
2026-06-15T13:33:59.5399743Z             {
2026-06-15T13:33:59.5399901Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5400003Z               "line": 207
2026-06-15T13:33:59.5400106Z             },
2026-06-15T13:33:59.5400207Z             {
2026-06-15T13:33:59.5400355Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:33:59.5400477Z               "line": 16
2026-06-15T13:33:59.5400582Z             },
2026-06-15T13:33:59.5400695Z             {
2026-06-15T13:33:59.5400836Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:33:59.5400947Z               "line": 63
2026-06-15T13:33:59.5401052Z             }
2026-06-15T13:33:59.5401156Z           ]
2026-06-15T13:33:59.5401262Z         },
2026-06-15T13:33:59.5401358Z         "int": {
2026-06-15T13:33:59.5401485Z           "complete": false,
2026-06-15T13:33:59.5401601Z           "evidence": []
2026-06-15T13:33:59.5401710Z         },
2026-06-15T13:33:59.5401819Z         "unit": {
2026-06-15T13:33:59.5401934Z           "complete": true,
2026-06-15T13:33:59.5402158Z           "evidence": [
2026-06-15T13:33:59.5402263Z             {
2026-06-15T13:33:59.5402444Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5402555Z               "line": 558
2026-06-15T13:33:59.5402663Z             },
2026-06-15T13:33:59.5402778Z             {
2026-06-15T13:33:59.5402930Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5403055Z               "line": 568
2026-06-15T13:33:59.5403156Z             },
2026-06-15T13:33:59.5403410Z             {
2026-06-15T13:33:59.5403562Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5403671Z               "line": 590
2026-06-15T13:33:59.5406571Z             },
2026-06-15T13:33:59.5406691Z             {
2026-06-15T13:33:59.5406876Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5406992Z               "line": 606
2026-06-15T13:33:59.5407096Z             },
2026-06-15T13:33:59.5407210Z             {
2026-06-15T13:33:59.5407378Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T13:33:59.5407492Z               "line": 629
2026-06-15T13:33:59.5407587Z             },
2026-06-15T13:33:59.5407697Z             {
2026-06-15T13:33:59.5407863Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5407988Z               "line": 472
2026-06-15T13:33:59.5408097Z             },
2026-06-15T13:33:59.5408197Z             {
2026-06-15T13:33:59.5408360Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T13:33:59.5408479Z               "line": 507
2026-06-15T13:33:59.5408580Z             },
2026-06-15T13:33:59.5408684Z             {
2026-06-15T13:33:59.5408854Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:33:59.5409051Z               "line": 120
2026-06-15T13:33:59.5409145Z             },
2026-06-15T13:33:59.5409250Z             {
2026-06-15T13:33:59.5409398Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T13:33:59.5409522Z               "line": 128
2026-06-15T13:33:59.5409623Z             }
2026-06-15T13:33:59.5409732Z           ]
2026-06-15T13:33:59.5409832Z         }
2026-06-15T13:33:59.5409937Z       }
2026-06-15T13:33:59.5410042Z     },
2026-06-15T13:33:59.5410146Z     {
2026-06-15T13:33:59.5410271Z       "id": "REQ-SUBNET-1",
2026-06-15T13:33:59.5410647Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T13:33:59.5410767Z       "requiredStages": [
2026-06-15T13:33:59.5410878Z         "impl",
2026-06-15T13:33:59.5410975Z         "unit"
2026-06-15T13:33:59.5411084Z       ],
2026-06-15T13:33:59.5411190Z       "stages": {
2026-06-15T13:33:59.5411302Z         "doc": {
2026-06-15T13:33:59.5411415Z           "complete": false,
2026-06-15T13:33:59.5411527Z           "evidence": []
2026-06-15T13:33:59.5411626Z         },
2026-06-15T13:33:59.5411735Z         "impl": {
2026-06-15T13:33:59.5411860Z           "complete": true,
2026-06-15T13:33:59.5411964Z           "evidence": [
2026-06-15T13:33:59.5412069Z             {
2026-06-15T13:33:59.5412242Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5412355Z               "line": 281
2026-06-15T13:33:59.5412457Z             },
2026-06-15T13:33:59.5412556Z             {
2026-06-15T13:33:59.5412723Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5412828Z               "line": 599
2026-06-15T13:33:59.5412932Z             },
2026-06-15T13:33:59.5413033Z             {
2026-06-15T13:33:59.5413171Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5413285Z               "line": 2955
2026-06-15T13:33:59.5413396Z             },
2026-06-15T13:33:59.5413500Z             {
2026-06-15T13:33:59.5413634Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5413754Z               "line": 3265
2026-06-15T13:33:59.5413857Z             },
2026-06-15T13:33:59.5413961Z             {
2026-06-15T13:33:59.5414222Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5414336Z               "line": 3284
2026-06-15T13:33:59.5414437Z             },
2026-06-15T13:33:59.5414536Z             {
2026-06-15T13:33:59.5414670Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5414785Z               "line": 3348
2026-06-15T13:33:59.5414889Z             },
2026-06-15T13:33:59.5414995Z             {
2026-06-15T13:33:59.5415123Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5415352Z               "line": 3390
2026-06-15T13:33:59.5415457Z             },
2026-06-15T13:33:59.5415556Z             {
2026-06-15T13:33:59.5415686Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5415809Z               "line": 3579
2026-06-15T13:33:59.5415915Z             },
2026-06-15T13:33:59.5416015Z             {
2026-06-15T13:33:59.5416143Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5416249Z               "line": 3649
2026-06-15T13:33:59.5416349Z             },
2026-06-15T13:33:59.5416448Z             {
2026-06-15T13:33:59.5416576Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5416685Z               "line": 3873
2026-06-15T13:33:59.5416788Z             },
2026-06-15T13:33:59.5416893Z             {
2026-06-15T13:33:59.5417018Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5417122Z               "line": 4510
2026-06-15T13:33:59.5417227Z             },
2026-06-15T13:33:59.5417323Z             {
2026-06-15T13:33:59.5417469Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.5417580Z               "line": 418
2026-06-15T13:33:59.5417685Z             }
2026-06-15T13:33:59.5417780Z           ]
2026-06-15T13:33:59.5417886Z         },
2026-06-15T13:33:59.5417990Z         "int": {
2026-06-15T13:33:59.5418108Z           "complete": false,
2026-06-15T13:33:59.5418224Z           "evidence": []
2026-06-15T13:33:59.5418328Z         },
2026-06-15T13:33:59.5418438Z         "unit": {
2026-06-15T13:33:59.5418548Z           "complete": true,
2026-06-15T13:33:59.5418652Z           "evidence": [
2026-06-15T13:33:59.5418752Z             {
2026-06-15T13:33:59.5418920Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5419102Z               "line": 1477
2026-06-15T13:33:59.5419212Z             },
2026-06-15T13:33:59.5419310Z             {
2026-06-15T13:33:59.5419433Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5419558Z               "line": 8307
2026-06-15T13:33:59.5419658Z             },
2026-06-15T13:33:59.5419757Z             {
2026-06-15T13:33:59.5419882Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5419991Z               "line": 8477
2026-06-15T13:33:59.5420097Z             },
2026-06-15T13:33:59.5420192Z             {
2026-06-15T13:33:59.5420325Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5420431Z               "line": 8484
2026-06-15T13:33:59.5420521Z             },
2026-06-15T13:33:59.5420630Z             {
2026-06-15T13:33:59.5420751Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5420869Z               "line": 8537
2026-06-15T13:33:59.5420968Z             },
2026-06-15T13:33:59.5421075Z             {
2026-06-15T13:33:59.5421202Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5421307Z               "line": 8554
2026-06-15T13:33:59.5421414Z             },
2026-06-15T13:33:59.5421517Z             {
2026-06-15T13:33:59.5421635Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5421740Z               "line": 8584
2026-06-15T13:33:59.5421844Z             },
2026-06-15T13:33:59.5421952Z             {
2026-06-15T13:33:59.5422096Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5422215Z               "line": 8683
2026-06-15T13:33:59.5422320Z             },
2026-06-15T13:33:59.5422425Z             {
2026-06-15T13:33:59.5422553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5422664Z               "line": 8834
2026-06-15T13:33:59.5422882Z             }
2026-06-15T13:33:59.5422979Z           ]
2026-06-15T13:33:59.5423088Z         }
2026-06-15T13:33:59.5423182Z       }
2026-06-15T13:33:59.5423283Z     },
2026-06-15T13:33:59.5423384Z     {
2026-06-15T13:33:59.5423507Z       "id": "REQ-SUBNET-2",
2026-06-15T13:33:59.5423788Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T13:33:59.5423908Z       "requiredStages": [
2026-06-15T13:33:59.5424014Z         "impl",
2026-06-15T13:33:59.5424208Z         "unit",
2026-06-15T13:33:59.5424314Z         "int"
2026-06-15T13:33:59.5424408Z       ],
2026-06-15T13:33:59.5424507Z       "stages": {
2026-06-15T13:33:59.5424607Z         "doc": {
2026-06-15T13:33:59.5424716Z           "complete": true,
2026-06-15T13:33:59.5424834Z           "evidence": [
2026-06-15T13:33:59.5424934Z             {
2026-06-15T13:33:59.5425125Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T13:33:59.5425245Z               "line": 60
2026-06-15T13:33:59.5425350Z             }
2026-06-15T13:33:59.5425454Z           ]
2026-06-15T13:33:59.5425555Z         },
2026-06-15T13:33:59.5425659Z         "impl": {
2026-06-15T13:33:59.5425778Z           "complete": true,
2026-06-15T13:33:59.5425889Z           "evidence": [
2026-06-15T13:33:59.5425988Z             {
2026-06-15T13:33:59.5426135Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.5426251Z               "line": 837
2026-06-15T13:33:59.5426360Z             },
2026-06-15T13:33:59.5426465Z             {
2026-06-15T13:33:59.5426613Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5426727Z               "line": 1190
2026-06-15T13:33:59.5426828Z             },
2026-06-15T13:33:59.5426928Z             {
2026-06-15T13:33:59.5427078Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.5427184Z               "line": 538
2026-06-15T13:33:59.5427287Z             },
2026-06-15T13:33:59.5427386Z             {
2026-06-15T13:33:59.5427535Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T13:33:59.5427634Z               "line": 669
2026-06-15T13:33:59.5427744Z             },
2026-06-15T13:33:59.5427845Z             {
2026-06-15T13:33:59.5427992Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5428117Z               "line": 26
2026-06-15T13:33:59.5428217Z             },
2026-06-15T13:33:59.5428321Z             {
2026-06-15T13:33:59.5428470Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5428588Z               "line": 60
2026-06-15T13:33:59.5428693Z             },
2026-06-15T13:33:59.5428794Z             {
2026-06-15T13:33:59.5429022Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5429132Z               "line": 168
2026-06-15T13:33:59.5429232Z             },
2026-06-15T13:33:59.5429337Z             {
2026-06-15T13:33:59.5429485Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5429609Z               "line": 295
2026-06-15T13:33:59.5429710Z             },
2026-06-15T13:33:59.5429814Z             {
2026-06-15T13:33:59.5429960Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5430075Z               "line": 417
2026-06-15T13:33:59.5430175Z             },
2026-06-15T13:33:59.5430279Z             {
2026-06-15T13:33:59.5430438Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T13:33:59.5430547Z               "line": 252
2026-06-15T13:33:59.5430647Z             },
2026-06-15T13:33:59.5430752Z             {
2026-06-15T13:33:59.5430890Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5431006Z               "line": 3311
2026-06-15T13:33:59.5431105Z             },
2026-06-15T13:33:59.5431209Z             {
2026-06-15T13:33:59.5431339Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5431453Z               "line": 3812
2026-06-15T13:33:59.5431552Z             },
2026-06-15T13:33:59.5431753Z             {
2026-06-15T13:33:59.5431887Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5431993Z               "line": 4441
2026-06-15T13:33:59.5432106Z             }
2026-06-15T13:33:59.5432205Z           ]
2026-06-15T13:33:59.5432305Z         },
2026-06-15T13:33:59.5432409Z         "int": {
2026-06-15T13:33:59.5432532Z           "complete": true,
2026-06-15T13:33:59.5432637Z           "evidence": [
2026-06-15T13:33:59.5432724Z             {
2026-06-15T13:33:59.5432884Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T13:33:59.5433076Z               "line": 22
2026-06-15T13:33:59.5433185Z             },
2026-06-15T13:33:59.5433281Z             {
2026-06-15T13:33:59.5433423Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5433539Z               "line": 576
2026-06-15T13:33:59.5433643Z             },
2026-06-15T13:33:59.5433752Z             {
2026-06-15T13:33:59.5433896Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5434000Z               "line": 793
2026-06-15T13:33:59.5434095Z             }
2026-06-15T13:33:59.5434202Z           ]
2026-06-15T13:33:59.5434310Z         },
2026-06-15T13:33:59.5434415Z         "unit": {
2026-06-15T13:33:59.5434531Z           "complete": true,
2026-06-15T13:33:59.5434648Z           "evidence": [
2026-06-15T13:33:59.5434744Z             {
2026-06-15T13:33:59.5434894Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5435001Z               "line": 586
2026-06-15T13:33:59.5435105Z             },
2026-06-15T13:33:59.5435206Z             {
2026-06-15T13:33:59.5435342Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5435442Z               "line": 8347
2026-06-15T13:33:59.5435542Z             },
2026-06-15T13:33:59.5435647Z             {
2026-06-15T13:33:59.5435781Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5435890Z               "line": 9041
2026-06-15T13:33:59.5435990Z             }
2026-06-15T13:33:59.5436100Z           ]
2026-06-15T13:33:59.5436200Z         }
2026-06-15T13:33:59.5436304Z       }
2026-06-15T13:33:59.5436405Z     },
2026-06-15T13:33:59.5436510Z     {
2026-06-15T13:33:59.5436629Z       "id": "REQ-SUBNET-3",
2026-06-15T13:33:59.5436934Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T13:33:59.5437050Z       "requiredStages": [
2026-06-15T13:33:59.5437154Z         "impl",
2026-06-15T13:33:59.5437249Z         "unit"
2026-06-15T13:33:59.5437355Z       ],
2026-06-15T13:33:59.5437460Z       "stages": {
2026-06-15T13:33:59.5437563Z         "doc": {
2026-06-15T13:33:59.5437677Z           "complete": false,
2026-06-15T13:33:59.5437796Z           "evidence": []
2026-06-15T13:33:59.5437889Z         },
2026-06-15T13:33:59.5437994Z         "impl": {
2026-06-15T13:33:59.5438109Z           "complete": true,
2026-06-15T13:33:59.5438223Z           "evidence": [
2026-06-15T13:33:59.5438314Z             {
2026-06-15T13:33:59.5438481Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5438599Z               "line": 152
2026-06-15T13:33:59.5438701Z             },
2026-06-15T13:33:59.5438801Z             {
2026-06-15T13:33:59.5439058Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5439172Z               "line": 299
2026-06-15T13:33:59.5439272Z             },
2026-06-15T13:33:59.5439377Z             {
2026-06-15T13:33:59.5439525Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5439641Z               "line": 437
2026-06-15T13:33:59.5439744Z             },
2026-06-15T13:33:59.5439849Z             {
2026-06-15T13:33:59.5439998Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5440111Z               "line": 480
2026-06-15T13:33:59.5440202Z             },
2026-06-15T13:33:59.5440304Z             {
2026-06-15T13:33:59.5440449Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5440554Z               "line": 125
2026-06-15T13:33:59.5440745Z             },
2026-06-15T13:33:59.5440849Z             {
2026-06-15T13:33:59.5440993Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5441097Z               "line": 253
2026-06-15T13:33:59.5441198Z             },
2026-06-15T13:33:59.5441298Z             {
2026-06-15T13:33:59.5441450Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5441551Z               "line": 264
2026-06-15T13:33:59.5441656Z             },
2026-06-15T13:33:59.5441861Z             {
2026-06-15T13:33:59.5442008Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5442113Z               "line": 285
2026-06-15T13:33:59.5442214Z             },
2026-06-15T13:33:59.5442318Z             {
2026-06-15T13:33:59.5442461Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5442562Z               "line": 589
2026-06-15T13:33:59.5442666Z             },
2026-06-15T13:33:59.5442770Z             {
2026-06-15T13:33:59.5442908Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5443016Z               "line": 648
2026-06-15T13:33:59.5443120Z             },
2026-06-15T13:33:59.5443226Z             {
2026-06-15T13:33:59.5443382Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.5443502Z               "line": 61
2026-06-15T13:33:59.5443603Z             },
2026-06-15T13:33:59.5443706Z             {
2026-06-15T13:33:59.5443851Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.5443969Z               "line": 90
2026-06-15T13:33:59.5444079Z             },
2026-06-15T13:33:59.5444180Z             {
2026-06-15T13:33:59.5444327Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.5444433Z               "line": 125
2026-06-15T13:33:59.5444537Z             },
2026-06-15T13:33:59.5444641Z             {
2026-06-15T13:33:59.5444786Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T13:33:59.5444903Z               "line": 9
2026-06-15T13:33:59.5445009Z             },
2026-06-15T13:33:59.5445110Z             {
2026-06-15T13:33:59.5445252Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5445363Z               "line": 3649
2026-06-15T13:33:59.5445463Z             },
2026-06-15T13:33:59.5445552Z             {
2026-06-15T13:33:59.5445694Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.5445799Z               "line": 445
2026-06-15T13:33:59.5445902Z             }
2026-06-15T13:33:59.5446002Z           ]
2026-06-15T13:33:59.5446107Z         },
2026-06-15T13:33:59.5446226Z         "int": {
2026-06-15T13:33:59.5446341Z           "complete": false,
2026-06-15T13:33:59.5446455Z           "evidence": []
2026-06-15T13:33:59.5446559Z         },
2026-06-15T13:33:59.5446661Z         "unit": {
2026-06-15T13:33:59.5446779Z           "complete": true,
2026-06-15T13:33:59.5446883Z           "evidence": [
2026-06-15T13:33:59.5446990Z             {
2026-06-15T13:33:59.5447157Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5447270Z               "line": 1304
2026-06-15T13:33:59.5447376Z             },
2026-06-15T13:33:59.5447480Z             {
2026-06-15T13:33:59.5447643Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5447766Z               "line": 1606
2026-06-15T13:33:59.5447866Z             },
2026-06-15T13:33:59.5447968Z             {
2026-06-15T13:33:59.5448123Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5448237Z               "line": 888
2026-06-15T13:33:59.5448342Z             },
2026-06-15T13:33:59.5448440Z             {
2026-06-15T13:33:59.5448592Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5448699Z               "line": 959
2026-06-15T13:33:59.5448802Z             },
2026-06-15T13:33:59.5448907Z             {
2026-06-15T13:33:59.5449121Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5449356Z               "line": 1009
2026-06-15T13:33:59.5449455Z             },
2026-06-15T13:33:59.5449557Z             {
2026-06-15T13:33:59.5449699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5449813Z               "line": 1068
2026-06-15T13:33:59.5449919Z             },
2026-06-15T13:33:59.5450019Z             {
2026-06-15T13:33:59.5450162Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T13:33:59.5450271Z               "line": 234
2026-06-15T13:33:59.5450472Z             },
2026-06-15T13:33:59.5450572Z             {
2026-06-15T13:33:59.5450719Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T13:33:59.5450835Z               "line": 49
2026-06-15T13:33:59.5450938Z             },
2026-06-15T13:33:59.5451043Z             {
2026-06-15T13:33:59.5451176Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5451295Z               "line": 8683
2026-06-15T13:33:59.5451395Z             },
2026-06-15T13:33:59.5451506Z             {
2026-06-15T13:33:59.5451643Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5451743Z               "line": 8789
2026-06-15T13:33:59.5451844Z             },
2026-06-15T13:33:59.5451949Z             {
2026-06-15T13:33:59.5452073Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5452192Z               "line": 9007
2026-06-15T13:33:59.5452296Z             }
2026-06-15T13:33:59.5452402Z           ]
2026-06-15T13:33:59.5452497Z         }
2026-06-15T13:33:59.5452602Z       }
2026-06-15T13:33:59.5452702Z     },
2026-06-15T13:33:59.5452807Z     {
2026-06-15T13:33:59.5452930Z       "id": "REQ-SUBNET-4",
2026-06-15T13:33:59.5453264Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T13:33:59.5453378Z       "requiredStages": [
2026-06-15T13:33:59.5453477Z         "impl",
2026-06-15T13:33:59.5453576Z         "unit"
2026-06-15T13:33:59.5453680Z       ],
2026-06-15T13:33:59.5453787Z       "stages": {
2026-06-15T13:33:59.5453891Z         "doc": {
2026-06-15T13:33:59.5454009Z           "complete": true,
2026-06-15T13:33:59.5454120Z           "evidence": [
2026-06-15T13:33:59.5454219Z             {
2026-06-15T13:33:59.5454406Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T13:33:59.5454524Z               "line": 60
2026-06-15T13:33:59.5454615Z             }
2026-06-15T13:33:59.5454721Z           ]
2026-06-15T13:33:59.5454821Z         },
2026-06-15T13:33:59.5454925Z         "impl": {
2026-06-15T13:33:59.5455045Z           "complete": true,
2026-06-15T13:33:59.5455154Z           "evidence": [
2026-06-15T13:33:59.5455259Z             {
2026-06-15T13:33:59.5455384Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5455498Z               "line": 2955
2026-06-15T13:33:59.5455603Z             },
2026-06-15T13:33:59.5455708Z             {
2026-06-15T13:33:59.5455832Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5455947Z               "line": 4408
2026-06-15T13:33:59.5456060Z             },
2026-06-15T13:33:59.5456159Z             {
2026-06-15T13:33:59.5456279Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5456391Z               "line": 4441
2026-06-15T13:33:59.5456500Z             }
2026-06-15T13:33:59.5456591Z           ]
2026-06-15T13:33:59.5456691Z         },
2026-06-15T13:33:59.5456786Z         "int": {
2026-06-15T13:33:59.5456896Z           "complete": false,
2026-06-15T13:33:59.5457015Z           "evidence": []
2026-06-15T13:33:59.5457115Z         },
2026-06-15T13:33:59.5457216Z         "unit": {
2026-06-15T13:33:59.5457326Z           "complete": true,
2026-06-15T13:33:59.5457439Z           "evidence": [
2026-06-15T13:33:59.5457545Z             {
2026-06-15T13:33:59.5457673Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5457787Z               "line": 8463
2026-06-15T13:33:59.5457889Z             },
2026-06-15T13:33:59.5457988Z             {
2026-06-15T13:33:59.5458107Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5458303Z               "line": 8537
2026-06-15T13:33:59.5458407Z             }
2026-06-15T13:33:59.5458509Z           ]
2026-06-15T13:33:59.5458613Z         }
2026-06-15T13:33:59.5458712Z       }
2026-06-15T13:33:59.5458817Z     },
2026-06-15T13:33:59.5458916Z     {
2026-06-15T13:33:59.5459167Z       "id": "REQ-SUBNET-5",
2026-06-15T13:33:59.5460407Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T13:33:59.5460626Z       "requiredStages": [
2026-06-15T13:33:59.5460727Z         "impl",
2026-06-15T13:33:59.5460827Z         "unit",
2026-06-15T13:33:59.5460927Z         "int"
2026-06-15T13:33:59.5461032Z       ],
2026-06-15T13:33:59.5461142Z       "stages": {
2026-06-15T13:33:59.5461246Z         "doc": {
2026-06-15T13:33:59.5461362Z           "complete": false,
2026-06-15T13:33:59.5461471Z           "evidence": []
2026-06-15T13:33:59.5461569Z         },
2026-06-15T13:33:59.5461679Z         "impl": {
2026-06-15T13:33:59.5461794Z           "complete": true,
2026-06-15T13:33:59.5461903Z           "evidence": [
2026-06-15T13:33:59.5462008Z             {
2026-06-15T13:33:59.5462161Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T13:33:59.5462284Z               "line": 126
2026-06-15T13:33:59.5462386Z             },
2026-06-15T13:33:59.5462490Z             {
2026-06-15T13:33:59.5462642Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T13:33:59.5462747Z               "line": 413
2026-06-15T13:33:59.5462852Z             },
2026-06-15T13:33:59.5462952Z             {
2026-06-15T13:33:59.5463090Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5463195Z               "line": 74
2026-06-15T13:33:59.5463301Z             },
2026-06-15T13:33:59.5463405Z             {
2026-06-15T13:33:59.5463548Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.5463664Z               "line": 332
2026-06-15T13:33:59.5463762Z             },
2026-06-15T13:33:59.5463866Z             {
2026-06-15T13:33:59.5464014Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.5464122Z               "line": 621
2026-06-15T13:33:59.5464221Z             },
2026-06-15T13:33:59.5464322Z             {
2026-06-15T13:33:59.5464484Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.5464584Z               "line": 31
2026-06-15T13:33:59.5464685Z             },
2026-06-15T13:33:59.5464789Z             {
2026-06-15T13:33:59.5464943Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.5465056Z               "line": 50
2026-06-15T13:33:59.5465160Z             },
2026-06-15T13:33:59.5465262Z             {
2026-06-15T13:33:59.5465409Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.5465514Z               "line": 69
2026-06-15T13:33:59.5465610Z             },
2026-06-15T13:33:59.5465719Z             {
2026-06-15T13:33:59.5465873Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.5465976Z               "line": 113
2026-06-15T13:33:59.5466086Z             },
2026-06-15T13:33:59.5466188Z             {
2026-06-15T13:33:59.5466353Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:33:59.5466464Z               "line": 25
2026-06-15T13:33:59.5466559Z             },
2026-06-15T13:33:59.5466668Z             {
2026-06-15T13:33:59.5466819Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:33:59.5466933Z               "line": 34
2026-06-15T13:33:59.5467027Z             },
2026-06-15T13:33:59.5467132Z             {
2026-06-15T13:33:59.5467280Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:33:59.5467500Z               "line": 17
2026-06-15T13:33:59.5467600Z             },
2026-06-15T13:33:59.5467694Z             {
2026-06-15T13:33:59.5467824Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5467943Z               "line": 4366
2026-06-15T13:33:59.5468052Z             },
2026-06-15T13:33:59.5468153Z             {
2026-06-15T13:33:59.5468291Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T13:33:59.5468405Z               "line": 419
2026-06-15T13:33:59.5468511Z             }
2026-06-15T13:33:59.5468681Z           ]
2026-06-15T13:33:59.5468787Z         },
2026-06-15T13:33:59.5468886Z         "int": {
2026-06-15T13:33:59.5469069Z           "complete": true,
2026-06-15T13:33:59.5469178Z           "evidence": [
2026-06-15T13:33:59.5469276Z             {
2026-06-15T13:33:59.5469424Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5469542Z               "line": 817
2026-06-15T13:33:59.5469641Z             }
2026-06-15T13:33:59.5469741Z           ]
2026-06-15T13:33:59.5469847Z         },
2026-06-15T13:33:59.5469951Z         "unit": {
2026-06-15T13:33:59.5470071Z           "complete": true,
2026-06-15T13:33:59.5470181Z           "evidence": [
2026-06-15T13:33:59.5470285Z             {
2026-06-15T13:33:59.5470429Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.5470542Z               "line": 341
2026-06-15T13:33:59.5470643Z             },
2026-06-15T13:33:59.5470748Z             {
2026-06-15T13:33:59.5470890Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T13:33:59.5471006Z               "line": 1115
2026-06-15T13:33:59.5471105Z             },
2026-06-15T13:33:59.5471210Z             {
2026-06-15T13:33:59.5471369Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T13:33:59.5471472Z               "line": 151
2026-06-15T13:33:59.5471578Z             },
2026-06-15T13:33:59.5471679Z             {
2026-06-15T13:33:59.5471825Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T13:33:59.5471946Z               "line": 61
2026-06-15T13:33:59.5472045Z             },
2026-06-15T13:33:59.5472153Z             {
2026-06-15T13:33:59.5472311Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:33:59.5472416Z               "line": 111
2026-06-15T13:33:59.5472515Z             },
2026-06-15T13:33:59.5472611Z             {
2026-06-15T13:33:59.5472763Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:33:59.5472868Z               "line": 138
2026-06-15T13:33:59.5472979Z             },
2026-06-15T13:33:59.5473083Z             {
2026-06-15T13:33:59.5473231Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T13:33:59.5473336Z               "line": 148
2026-06-15T13:33:59.5473440Z             },
2026-06-15T13:33:59.5473541Z             {
2026-06-15T13:33:59.5473674Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5473793Z               "line": 8364
2026-06-15T13:33:59.5473895Z             }
2026-06-15T13:33:59.5473993Z           ]
2026-06-15T13:33:59.5474103Z         }
2026-06-15T13:33:59.5474205Z       }
2026-06-15T13:33:59.5474308Z     },
2026-06-15T13:33:59.5474408Z     {
2026-06-15T13:33:59.5474527Z       "id": "REQ-SUBNET-6",
2026-06-15T13:33:59.5475274Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T13:33:59.5475387Z       "requiredStages": [
2026-06-15T13:33:59.5475498Z         "impl",
2026-06-15T13:33:59.5475603Z         "unit"
2026-06-15T13:33:59.5475707Z       ],
2026-06-15T13:33:59.5475803Z       "stages": {
2026-06-15T13:33:59.5475912Z         "doc": {
2026-06-15T13:33:59.5476036Z           "complete": false,
2026-06-15T13:33:59.5476142Z           "evidence": []
2026-06-15T13:33:59.5476246Z         },
2026-06-15T13:33:59.5476351Z         "impl": {
2026-06-15T13:33:59.5476565Z           "complete": true,
2026-06-15T13:33:59.5476679Z           "evidence": [
2026-06-15T13:33:59.5476786Z             {
2026-06-15T13:33:59.5476942Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5477052Z               "line": 254
2026-06-15T13:33:59.5477152Z             },
2026-06-15T13:33:59.5477256Z             {
2026-06-15T13:33:59.5477394Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5477511Z               "line": 4024
2026-06-15T13:33:59.5477701Z             },
2026-06-15T13:33:59.5477807Z             {
2026-06-15T13:33:59.5477930Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5478050Z               "line": 4041
2026-06-15T13:33:59.5478145Z             },
2026-06-15T13:33:59.5478254Z             {
2026-06-15T13:33:59.5478384Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5478494Z               "line": 4094
2026-06-15T13:33:59.5478592Z             },
2026-06-15T13:33:59.5478704Z             {
2026-06-15T13:33:59.5478837Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5479014Z               "line": 4117
2026-06-15T13:33:59.5479118Z             }
2026-06-15T13:33:59.5479213Z           ]
2026-06-15T13:33:59.5479315Z         },
2026-06-15T13:33:59.5479414Z         "int": {
2026-06-15T13:33:59.5479528Z           "complete": false,
2026-06-15T13:33:59.5479639Z           "evidence": []
2026-06-15T13:33:59.5479733Z         },
2026-06-15T13:33:59.5479836Z         "unit": {
2026-06-15T13:33:59.5479956Z           "complete": true,
2026-06-15T13:33:59.5480060Z           "evidence": [
2026-06-15T13:33:59.5480158Z             {
2026-06-15T13:33:59.5480288Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5480403Z               "line": 8378
2026-06-15T13:33:59.5480501Z             },
2026-06-15T13:33:59.5480607Z             {
2026-06-15T13:33:59.5480736Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5480845Z               "line": 8411
2026-06-15T13:33:59.5480956Z             },
2026-06-15T13:33:59.5481055Z             {
2026-06-15T13:33:59.5481193Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5481289Z               "line": 8420
2026-06-15T13:33:59.5481389Z             }
2026-06-15T13:33:59.5481499Z           ]
2026-06-15T13:33:59.5481600Z         }
2026-06-15T13:33:59.5481704Z       }
2026-06-15T13:33:59.5481799Z     },
2026-06-15T13:33:59.5481895Z     {
2026-06-15T13:33:59.5482013Z       "id": "REQ-SUBNET-7",
2026-06-15T13:33:59.5483734Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T13:33:59.5483868Z       "requiredStages": [
2026-06-15T13:33:59.5483968Z         "impl",
2026-06-15T13:33:59.5484072Z         "unit"
2026-06-15T13:33:59.5484178Z       ],
2026-06-15T13:33:59.5484283Z       "stages": {
2026-06-15T13:33:59.5484382Z         "doc": {
2026-06-15T13:33:59.5484498Z           "complete": false,
2026-06-15T13:33:59.5484616Z           "evidence": []
2026-06-15T13:33:59.5484716Z         },
2026-06-15T13:33:59.5484817Z         "impl": {
2026-06-15T13:33:59.5484934Z           "complete": true,
2026-06-15T13:33:59.5485049Z           "evidence": [
2026-06-15T13:33:59.5485158Z             {
2026-06-15T13:33:59.5485304Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:33:59.5485423Z               "line": 17
2026-06-15T13:33:59.5485528Z             },
2026-06-15T13:33:59.5485628Z             {
2026-06-15T13:33:59.5485776Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5486015Z               "line": 103
2026-06-15T13:33:59.5486124Z             },
2026-06-15T13:33:59.5486224Z             {
2026-06-15T13:33:59.5486373Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T13:33:59.5489292Z               "line": 312
2026-06-15T13:33:59.5489425Z             },
2026-06-15T13:33:59.5489530Z             {
2026-06-15T13:33:59.5489711Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T13:33:59.5489826Z               "line": 131
2026-06-15T13:33:59.5490069Z             },
2026-06-15T13:33:59.5490170Z             {
2026-06-15T13:33:59.5490340Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5490458Z               "line": 160
2026-06-15T13:33:59.5490563Z             },
2026-06-15T13:33:59.5490666Z             {
2026-06-15T13:33:59.5490828Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5490939Z               "line": 441
2026-06-15T13:33:59.5491038Z             },
2026-06-15T13:33:59.5491148Z             {
2026-06-15T13:33:59.5491310Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5491429Z               "line": 618
2026-06-15T13:33:59.5491530Z             },
2026-06-15T13:33:59.5491639Z             {
2026-06-15T13:33:59.5491788Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5491897Z               "line": 658
2026-06-15T13:33:59.5491992Z             },
2026-06-15T13:33:59.5492097Z             {
2026-06-15T13:33:59.5492264Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5492378Z               "line": 714
2026-06-15T13:33:59.5492474Z             },
2026-06-15T13:33:59.5492578Z             {
2026-06-15T13:33:59.5492742Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5492841Z               "line": 136
2026-06-15T13:33:59.5492951Z             },
2026-06-15T13:33:59.5493056Z             {
2026-06-15T13:33:59.5493198Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5493316Z               "line": 139
2026-06-15T13:33:59.5493412Z             }
2026-06-15T13:33:59.5493532Z           ]
2026-06-15T13:33:59.5493650Z         },
2026-06-15T13:33:59.5493751Z         "int": {
2026-06-15T13:33:59.5493875Z           "complete": false,
2026-06-15T13:33:59.5493988Z           "evidence": []
2026-06-15T13:33:59.5494090Z         },
2026-06-15T13:33:59.5494199Z         "unit": {
2026-06-15T13:33:59.5494313Z           "complete": true,
2026-06-15T13:33:59.5494433Z           "evidence": [
2026-06-15T13:33:59.5494537Z             {
2026-06-15T13:33:59.5494690Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:33:59.5494804Z               "line": 136
2026-06-15T13:33:59.5494904Z             },
2026-06-15T13:33:59.5495005Z             {
2026-06-15T13:33:59.5495147Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T13:33:59.5495253Z               "line": 156
2026-06-15T13:33:59.5495359Z             },
2026-06-15T13:33:59.5495461Z             {
2026-06-15T13:33:59.5495628Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5495746Z               "line": 935
2026-06-15T13:33:59.5495845Z             },
2026-06-15T13:33:59.5495945Z             {
2026-06-15T13:33:59.5496103Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T13:33:59.5496212Z               "line": 957
2026-06-15T13:33:59.5496323Z             },
2026-06-15T13:33:59.5496413Z             {
2026-06-15T13:33:59.5496580Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T13:33:59.5496684Z               "line": 1419
2026-06-15T13:33:59.5496793Z             },
2026-06-15T13:33:59.5496899Z             {
2026-06-15T13:33:59.5497042Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T13:33:59.5497161Z               "line": 1004
2026-06-15T13:33:59.5497262Z             }
2026-06-15T13:33:59.5497366Z           ]
2026-06-15T13:33:59.5497466Z         }
2026-06-15T13:33:59.5497661Z       }
2026-06-15T13:33:59.5497766Z     },
2026-06-15T13:33:59.5497868Z     {
2026-06-15T13:33:59.5497990Z       "id": "REQ-SUBNET-8",
2026-06-15T13:33:59.5499251Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T13:33:59.5499481Z       "requiredStages": [
2026-06-15T13:33:59.5499585Z         "impl",
2026-06-15T13:33:59.5499689Z         "unit"
2026-06-15T13:33:59.5499785Z       ],
2026-06-15T13:33:59.5499890Z       "stages": {
2026-06-15T13:33:59.5499990Z         "doc": {
2026-06-15T13:33:59.5500100Z           "complete": false,
2026-06-15T13:33:59.5500209Z           "evidence": []
2026-06-15T13:33:59.5500300Z         },
2026-06-15T13:33:59.5500410Z         "impl": {
2026-06-15T13:33:59.5500529Z           "complete": true,
2026-06-15T13:33:59.5500634Z           "evidence": [
2026-06-15T13:33:59.5500725Z             {
2026-06-15T13:33:59.5500872Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5500994Z               "line": 3391
2026-06-15T13:33:59.5501091Z             },
2026-06-15T13:33:59.5501189Z             {
2026-06-15T13:33:59.5501466Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5501790Z               "line": 3420
2026-06-15T13:33:59.5502038Z             },
2026-06-15T13:33:59.5502251Z             {
2026-06-15T13:33:59.5502485Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5502757Z               "line": 3437
2026-06-15T13:33:59.5502977Z             },
2026-06-15T13:33:59.5503172Z             {
2026-06-15T13:33:59.5503396Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5503669Z               "line": 3460
2026-06-15T13:33:59.5503895Z             },
2026-06-15T13:33:59.5504115Z             {
2026-06-15T13:33:59.5504340Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5504611Z               "line": 3874
2026-06-15T13:33:59.5504839Z             }
2026-06-15T13:33:59.5505035Z           ]
2026-06-15T13:33:59.5505222Z         },
2026-06-15T13:33:59.5505426Z         "int": {
2026-06-15T13:33:59.5505660Z           "complete": false,
2026-06-15T13:33:59.5505904Z           "evidence": []
2026-06-15T13:33:59.5506140Z         },
2026-06-15T13:33:59.5506344Z         "unit": {
2026-06-15T13:33:59.5506563Z           "complete": true,
2026-06-15T13:33:59.5506801Z           "evidence": [
2026-06-15T13:33:59.5507029Z             {
2026-06-15T13:33:59.5507263Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5507550Z               "line": 8568
2026-06-15T13:33:59.5507779Z             },
2026-06-15T13:33:59.5507993Z             {
2026-06-15T13:33:59.5508222Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5508500Z               "line": 8584
2026-06-15T13:33:59.5508724Z             }
2026-06-15T13:33:59.5508917Z           ]
2026-06-15T13:33:59.5509225Z         }
2026-06-15T13:33:59.5509411Z       }
2026-06-15T13:33:59.5509596Z     },
2026-06-15T13:33:59.5509792Z     {
2026-06-15T13:33:59.5510007Z       "id": "REQ-TERM-1",
2026-06-15T13:33:59.5510331Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T13:33:59.5510694Z       "requiredStages": [
2026-06-15T13:33:59.5510922Z         "impl",
2026-06-15T13:33:59.5511141Z         "unit"
2026-06-15T13:33:59.5511338Z       ],
2026-06-15T13:33:59.5511531Z       "stages": {
2026-06-15T13:33:59.5511749Z         "doc": {
2026-06-15T13:33:59.5511973Z           "complete": false,
2026-06-15T13:33:59.5512220Z           "evidence": []
2026-06-15T13:33:59.5512458Z         },
2026-06-15T13:33:59.5512659Z         "impl": {
2026-06-15T13:33:59.5512869Z           "complete": true,
2026-06-15T13:33:59.5513107Z           "evidence": [
2026-06-15T13:33:59.5513322Z             {
2026-06-15T13:33:59.5513670Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:33:59.5513956Z               "line": 59
2026-06-15T13:33:59.5514186Z             },
2026-06-15T13:33:59.5514384Z             {
2026-06-15T13:33:59.5514609Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T13:33:59.5514924Z               "line": 195
2026-06-15T13:33:59.5515158Z             },
2026-06-15T13:33:59.5515366Z             {
2026-06-15T13:33:59.5515619Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:33:59.5516087Z               "line": 100
2026-06-15T13:33:59.5516320Z             }
2026-06-15T13:33:59.5516521Z           ]
2026-06-15T13:33:59.5516714Z         },
2026-06-15T13:33:59.5516918Z         "int": {
2026-06-15T13:33:59.5517138Z           "complete": false,
2026-06-15T13:33:59.5517385Z           "evidence": []
2026-06-15T13:33:59.5517604Z         },
2026-06-15T13:33:59.5517800Z         "unit": {
2026-06-15T13:33:59.5518025Z           "complete": true,
2026-06-15T13:33:59.5518271Z           "evidence": [
2026-06-15T13:33:59.5518496Z             {
2026-06-15T13:33:59.5518745Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:33:59.5519125Z               "line": 24
2026-06-15T13:33:59.5519351Z             },
2026-06-15T13:33:59.5519553Z             {
2026-06-15T13:33:59.5519808Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T13:33:59.5520095Z               "line": 56
2026-06-15T13:33:59.5520315Z             }
2026-06-15T13:33:59.5520519Z           ]
2026-06-15T13:33:59.5520720Z         }
2026-06-15T13:33:59.5520911Z       }
2026-06-15T13:33:59.5521105Z     },
2026-06-15T13:33:59.5521297Z     {
2026-06-15T13:33:59.5521506Z       "id": "REQ-TERM-2",
2026-06-15T13:33:59.5521851Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T13:33:59.5522215Z       "requiredStages": [
2026-06-15T13:33:59.5522441Z         "impl",
2026-06-15T13:33:59.5522652Z         "unit"
2026-06-15T13:33:59.5522858Z       ],
2026-06-15T13:33:59.5523052Z       "stages": {
2026-06-15T13:33:59.5523262Z         "doc": {
2026-06-15T13:33:59.5523487Z           "complete": false,
2026-06-15T13:33:59.5523743Z           "evidence": []
2026-06-15T13:33:59.5523973Z         },
2026-06-15T13:33:59.5524174Z         "impl": {
2026-06-15T13:33:59.5524403Z           "complete": true,
2026-06-15T13:33:59.5524640Z           "evidence": [
2026-06-15T13:33:59.5524864Z             {
2026-06-15T13:33:59.5525107Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:33:59.5525402Z               "line": 117
2026-06-15T13:33:59.5525630Z             },
2026-06-15T13:33:59.5525841Z             {
2026-06-15T13:33:59.5526084Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T13:33:59.5526371Z               "line": 127
2026-06-15T13:33:59.5526594Z             }
2026-06-15T13:33:59.5526790Z           ]
2026-06-15T13:33:59.5526986Z         },
2026-06-15T13:33:59.5527184Z         "int": {
2026-06-15T13:33:59.5527426Z           "complete": false,
2026-06-15T13:33:59.5527673Z           "evidence": []
2026-06-15T13:33:59.5527892Z         },
2026-06-15T13:33:59.5528098Z         "unit": {
2026-06-15T13:33:59.5528322Z           "complete": true,
2026-06-15T13:33:59.5528551Z           "evidence": [
2026-06-15T13:33:59.5528780Z             {
2026-06-15T13:33:59.5529099Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T13:33:59.5529389Z               "line": 46
2026-06-15T13:33:59.5529610Z             },
2026-06-15T13:33:59.5529820Z             {
2026-06-15T13:33:59.5530061Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T13:33:59.5530350Z               "line": 77
2026-06-15T13:33:59.5530579Z             }
2026-06-15T13:33:59.5530774Z           ]
2026-06-15T13:33:59.5530984Z         }
2026-06-15T13:33:59.5531175Z       }
2026-06-15T13:33:59.5531360Z     },
2026-06-15T13:33:59.5531557Z     {
2026-06-15T13:33:59.5531766Z       "id": "REQ-TERM-3",
2026-06-15T13:33:59.5532071Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T13:33:59.5532501Z       "requiredStages": [
2026-06-15T13:33:59.5532747Z         "impl",
2026-06-15T13:33:59.5532959Z         "unit"
2026-06-15T13:33:59.5533170Z       ],
2026-06-15T13:33:59.5533374Z       "stages": {
2026-06-15T13:33:59.5533593Z         "doc": {
2026-06-15T13:33:59.5533832Z           "complete": false,
2026-06-15T13:33:59.5534071Z           "evidence": []
2026-06-15T13:33:59.5534289Z         },
2026-06-15T13:33:59.5534490Z         "impl": {
2026-06-15T13:33:59.5534838Z           "complete": true,
2026-06-15T13:33:59.5535082Z           "evidence": [
2026-06-15T13:33:59.5535306Z             {
2026-06-15T13:33:59.5535566Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T13:33:59.5535862Z               "line": 71
2026-06-15T13:33:59.5536096Z             }
2026-06-15T13:33:59.5536297Z           ]
2026-06-15T13:33:59.5536501Z         },
2026-06-15T13:33:59.5536697Z         "int": {
2026-06-15T13:33:59.5536926Z           "complete": false,
2026-06-15T13:33:59.5537188Z           "evidence": []
2026-06-15T13:33:59.5537416Z         },
2026-06-15T13:33:59.5537622Z         "unit": {
2026-06-15T13:33:59.5537840Z           "complete": true,
2026-06-15T13:33:59.5538085Z           "evidence": [
2026-06-15T13:33:59.5538306Z             {
2026-06-15T13:33:59.5538558Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T13:33:59.5538854Z               "line": 37
2026-06-15T13:33:59.5539164Z             },
2026-06-15T13:33:59.5539373Z             {
2026-06-15T13:33:59.5539626Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T13:33:59.5539917Z               "line": 67
2026-06-15T13:33:59.5540146Z             }
2026-06-15T13:33:59.5540350Z           ]
2026-06-15T13:33:59.5540551Z         }
2026-06-15T13:33:59.5540740Z       }
2026-06-15T13:33:59.5540938Z     },
2026-06-15T13:33:59.5541130Z     {
2026-06-15T13:33:59.5541344Z       "id": "REQ-TERM-4",
2026-06-15T13:33:59.5541997Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T13:33:59.5542671Z       "requiredStages": [
2026-06-15T13:33:59.5542907Z         "impl",
2026-06-15T13:33:59.5543118Z         "unit",
2026-06-15T13:33:59.5543326Z         "int"
2026-06-15T13:33:59.5543528Z       ],
2026-06-15T13:33:59.5543740Z       "stages": {
2026-06-15T13:33:59.5543958Z         "doc": {
2026-06-15T13:33:59.5544186Z           "complete": false,
2026-06-15T13:33:59.5544435Z           "evidence": []
2026-06-15T13:33:59.5544669Z         },
2026-06-15T13:33:59.5544878Z         "impl": {
2026-06-15T13:33:59.5545107Z           "complete": true,
2026-06-15T13:33:59.5545355Z           "evidence": [
2026-06-15T13:33:59.5545581Z             {
2026-06-15T13:33:59.5545838Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5546135Z               "line": 37
2026-06-15T13:33:59.5546360Z             },
2026-06-15T13:33:59.5546585Z             {
2026-06-15T13:33:59.5546843Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5547138Z               "line": 25
2026-06-15T13:33:59.5547366Z             },
2026-06-15T13:33:59.5547576Z             {
2026-06-15T13:33:59.5547830Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5548126Z               "line": 114
2026-06-15T13:33:59.5548357Z             },
2026-06-15T13:33:59.5548570Z             {
2026-06-15T13:33:59.5548828Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5549222Z               "line": 267
2026-06-15T13:33:59.5549447Z             },
2026-06-15T13:33:59.5549641Z             {
2026-06-15T13:33:59.5549885Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5550181Z               "line": 289
2026-06-15T13:33:59.5550411Z             },
2026-06-15T13:33:59.5550610Z             {
2026-06-15T13:33:59.5550873Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5551276Z               "line": 307
2026-06-15T13:33:59.5551513Z             },
2026-06-15T13:33:59.5551719Z             {
2026-06-15T13:33:59.5551976Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.5552272Z               "line": 33
2026-06-15T13:33:59.5552504Z             },
2026-06-15T13:33:59.5552710Z             {
2026-06-15T13:33:59.5552963Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5553264Z               "line": 52
2026-06-15T13:33:59.5553588Z             },
2026-06-15T13:33:59.5553795Z             {
2026-06-15T13:33:59.5554056Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5554361Z               "line": 180
2026-06-15T13:33:59.5554591Z             },
2026-06-15T13:33:59.5554804Z             {
2026-06-15T13:33:59.5555051Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5555352Z               "line": 190
2026-06-15T13:33:59.5555586Z             },
2026-06-15T13:33:59.5555792Z             {
2026-06-15T13:33:59.5556049Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5556344Z               "line": 250
2026-06-15T13:33:59.5556573Z             },
2026-06-15T13:33:59.5556777Z             {
2026-06-15T13:33:59.5557034Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5557330Z               "line": 280
2026-06-15T13:33:59.5557564Z             },
2026-06-15T13:33:59.5557770Z             {
2026-06-15T13:33:59.5558027Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5558323Z               "line": 291
2026-06-15T13:33:59.5558537Z             },
2026-06-15T13:33:59.5558743Z             {
2026-06-15T13:33:59.5559056Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5559335Z               "line": 1086
2026-06-15T13:33:59.5559558Z             }
2026-06-15T13:33:59.5559769Z           ]
2026-06-15T13:33:59.5559960Z         },
2026-06-15T13:33:59.5560169Z         "int": {
2026-06-15T13:33:59.5560398Z           "complete": true,
2026-06-15T13:33:59.5560642Z           "evidence": [
2026-06-15T13:33:59.5560870Z             {
2026-06-15T13:33:59.5561122Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T13:33:59.5561423Z               "line": 18
2026-06-15T13:33:59.5561647Z             }
2026-06-15T13:33:59.5561846Z           ]
2026-06-15T13:33:59.5562073Z         },
2026-06-15T13:33:59.5562288Z         "unit": {
2026-06-15T13:33:59.5562527Z           "complete": true,
2026-06-15T13:33:59.5562778Z           "evidence": [
2026-06-15T13:33:59.5563007Z             {
2026-06-15T13:33:59.5563265Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5563561Z               "line": 349
2026-06-15T13:33:59.5563791Z             },
2026-06-15T13:33:59.5563990Z             {
2026-06-15T13:33:59.5564242Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5564536Z               "line": 401
2026-06-15T13:33:59.5564773Z             },
2026-06-15T13:33:59.5564987Z             {
2026-06-15T13:33:59.5565236Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5565536Z               "line": 411
2026-06-15T13:33:59.5565761Z             },
2026-06-15T13:33:59.5565970Z             {
2026-06-15T13:33:59.5566232Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5566528Z               "line": 436
2026-06-15T13:33:59.5566753Z             },
2026-06-15T13:33:59.5566968Z             {
2026-06-15T13:33:59.5567232Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5567537Z               "line": 456
2026-06-15T13:33:59.5571716Z             },
2026-06-15T13:33:59.5571993Z             {
2026-06-15T13:33:59.5572269Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5572590Z               "line": 478
2026-06-15T13:33:59.5572824Z             },
2026-06-15T13:33:59.5573038Z             {
2026-06-15T13:33:59.5573310Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5573773Z               "line": 491
2026-06-15T13:33:59.5574012Z             },
2026-06-15T13:33:59.5574216Z             {
2026-06-15T13:33:59.5574478Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T13:33:59.5574784Z               "line": 502
2026-06-15T13:33:59.5575021Z             },
2026-06-15T13:33:59.5575223Z             {
2026-06-15T13:33:59.5575476Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.5575876Z               "line": 108
2026-06-15T13:33:59.5576111Z             },
2026-06-15T13:33:59.5576326Z             {
2026-06-15T13:33:59.5576573Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:33:59.5576864Z               "line": 119
2026-06-15T13:33:59.5577088Z             },
2026-06-15T13:33:59.5577299Z             {
2026-06-15T13:33:59.5577547Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:33:59.5577835Z               "line": 127
2026-06-15T13:33:59.5578078Z             },
2026-06-15T13:33:59.5578275Z             {
2026-06-15T13:33:59.5578537Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5578838Z               "line": 474
2026-06-15T13:33:59.5579157Z             },
2026-06-15T13:33:59.5579357Z             {
2026-06-15T13:33:59.5579618Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5579919Z               "line": 501
2026-06-15T13:33:59.5580152Z             },
2026-06-15T13:33:59.5580359Z             {
2026-06-15T13:33:59.5580621Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5580918Z               "line": 520
2026-06-15T13:33:59.5581138Z             },
2026-06-15T13:33:59.5581341Z             {
2026-06-15T13:33:59.5581594Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5581890Z               "line": 535
2026-06-15T13:33:59.5582133Z             },
2026-06-15T13:33:59.5582339Z             {
2026-06-15T13:33:59.5582586Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5582876Z               "line": 561
2026-06-15T13:33:59.5583104Z             },
2026-06-15T13:33:59.5583308Z             {
2026-06-15T13:33:59.5583565Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5583856Z               "line": 581
2026-06-15T13:33:59.5584090Z             },
2026-06-15T13:33:59.5584300Z             {
2026-06-15T13:33:59.5584552Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5584848Z               "line": 591
2026-06-15T13:33:59.5585086Z             },
2026-06-15T13:33:59.5585292Z             {
2026-06-15T13:33:59.5585547Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5585850Z               "line": 683
2026-06-15T13:33:59.5586074Z             },
2026-06-15T13:33:59.5586285Z             {
2026-06-15T13:33:59.5586543Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5586834Z               "line": 761
2026-06-15T13:33:59.5587052Z             },
2026-06-15T13:33:59.5587262Z             {
2026-06-15T13:33:59.5587497Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5587792Z               "line": 8135
2026-06-15T13:33:59.5588034Z             }
2026-06-15T13:33:59.5588239Z           ]
2026-06-15T13:33:59.5588434Z         }
2026-06-15T13:33:59.5588629Z       }
2026-06-15T13:33:59.5588826Z     },
2026-06-15T13:33:59.5589107Z     {
2026-06-15T13:33:59.5589310Z       "id": "REQ-TERM-5",
2026-06-15T13:33:59.5591139Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T13:33:59.5593013Z       "requiredStages": [
2026-06-15T13:33:59.5593252Z         "doc",
2026-06-15T13:33:59.5593460Z         "impl",
2026-06-15T13:33:59.5593669Z         "unit",
2026-06-15T13:33:59.5593877Z         "int"
2026-06-15T13:33:59.5594082Z       ],
2026-06-15T13:33:59.5594287Z       "stages": {
2026-06-15T13:33:59.5594498Z         "doc": {
2026-06-15T13:33:59.5594735Z           "complete": true,
2026-06-15T13:33:59.5595084Z           "evidence": [
2026-06-15T13:33:59.5595317Z             {
2026-06-15T13:33:59.5595552Z               "path": "docs/MANIFEST.md",
2026-06-15T13:33:59.5595829Z               "line": 167
2026-06-15T13:33:59.5596055Z             }
2026-06-15T13:33:59.5596267Z           ]
2026-06-15T13:33:59.5596468Z         },
2026-06-15T13:33:59.5596673Z         "impl": {
2026-06-15T13:33:59.5596897Z           "complete": true,
2026-06-15T13:33:59.5597136Z           "evidence": [
2026-06-15T13:33:59.5597370Z             {
2026-06-15T13:33:59.5597627Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5597922Z               "line": 75
2026-06-15T13:33:59.5598141Z             },
2026-06-15T13:33:59.5598352Z             {
2026-06-15T13:33:59.5598609Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5598903Z               "line": 131
2026-06-15T13:33:59.5599194Z             },
2026-06-15T13:33:59.5599405Z             {
2026-06-15T13:33:59.5599658Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5599943Z               "line": 22
2026-06-15T13:33:59.5600172Z             },
2026-06-15T13:33:59.5600386Z             {
2026-06-15T13:33:59.5600640Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5600931Z               "line": 81
2026-06-15T13:33:59.5601158Z             },
2026-06-15T13:33:59.5601361Z             {
2026-06-15T13:33:59.5601594Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T13:33:59.5601895Z               "line": 30
2026-06-15T13:33:59.5602118Z             },
2026-06-15T13:33:59.5602314Z             {
2026-06-15T13:33:59.5602568Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5602873Z               "line": 103
2026-06-15T13:33:59.5603101Z             },
2026-06-15T13:33:59.5603310Z             {
2026-06-15T13:33:59.5603564Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5603856Z               "line": 167
2026-06-15T13:33:59.5604092Z             },
2026-06-15T13:33:59.5604289Z             {
2026-06-15T13:33:59.5604543Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5604838Z               "line": 434
2026-06-15T13:33:59.5605053Z             },
2026-06-15T13:33:59.5605258Z             {
2026-06-15T13:33:59.5605482Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5605769Z               "line": 5070
2026-06-15T13:33:59.5605992Z             },
2026-06-15T13:33:59.5606201Z             {
2026-06-15T13:33:59.5606432Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5606711Z               "line": 5104
2026-06-15T13:33:59.5606937Z             }
2026-06-15T13:33:59.5607138Z           ]
2026-06-15T13:33:59.5607329Z         },
2026-06-15T13:33:59.5607533Z         "int": {
2026-06-15T13:33:59.5607748Z           "complete": true,
2026-06-15T13:33:59.5607987Z           "evidence": [
2026-06-15T13:33:59.5608215Z             {
2026-06-15T13:33:59.5608492Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:33:59.5608831Z               "line": 17
2026-06-15T13:33:59.5609131Z             }
2026-06-15T13:33:59.5609336Z           ]
2026-06-15T13:33:59.5609530Z         },
2026-06-15T13:33:59.5609721Z         "unit": {
2026-06-15T13:33:59.5609941Z           "complete": true,
2026-06-15T13:33:59.5610184Z           "evidence": [
2026-06-15T13:33:59.5610412Z             {
2026-06-15T13:33:59.5610665Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5611075Z               "line": 360
2026-06-15T13:33:59.5611304Z             },
2026-06-15T13:33:59.5611506Z             {
2026-06-15T13:33:59.5611741Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5612025Z               "line": 153
2026-06-15T13:33:59.5612250Z             },
2026-06-15T13:33:59.5612455Z             {
2026-06-15T13:33:59.5612697Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5612997Z               "line": 169
2026-06-15T13:33:59.5613342Z             },
2026-06-15T13:33:59.5613547Z             {
2026-06-15T13:33:59.5613781Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5614063Z               "line": 191
2026-06-15T13:33:59.5614296Z             },
2026-06-15T13:33:59.5614495Z             {
2026-06-15T13:33:59.5614728Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5615017Z               "line": 202
2026-06-15T13:33:59.5615255Z             },
2026-06-15T13:33:59.5615465Z             {
2026-06-15T13:33:59.5615704Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T13:33:59.5615990Z               "line": 213
2026-06-15T13:33:59.5616214Z             },
2026-06-15T13:33:59.5616422Z             {
2026-06-15T13:33:59.5616686Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.5616982Z               "line": 1147
2026-06-15T13:33:59.5617209Z             },
2026-06-15T13:33:59.5617416Z             {
2026-06-15T13:33:59.5617680Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.5617979Z               "line": 1190
2026-06-15T13:33:59.5618214Z             },
2026-06-15T13:33:59.5618417Z             {
2026-06-15T13:33:59.5618676Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5619042Z               "line": 606
2026-06-15T13:33:59.5619271Z             },
2026-06-15T13:33:59.5619482Z             {
2026-06-15T13:33:59.5619734Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5620033Z               "line": 634
2026-06-15T13:33:59.5620258Z             },
2026-06-15T13:33:59.5620468Z             {
2026-06-15T13:33:59.5620715Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5621010Z               "line": 646
2026-06-15T13:33:59.5621230Z             },
2026-06-15T13:33:59.5621441Z             {
2026-06-15T13:33:59.5621689Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5621988Z               "line": 669
2026-06-15T13:33:59.5622221Z             },
2026-06-15T13:33:59.5622425Z             {
2026-06-15T13:33:59.5622657Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5622943Z               "line": 6959
2026-06-15T13:33:59.5623177Z             }
2026-06-15T13:33:59.5623387Z           ]
2026-06-15T13:33:59.5623587Z         }
2026-06-15T13:33:59.5623787Z       }
2026-06-15T13:33:59.5623979Z     },
2026-06-15T13:33:59.5624183Z     {
2026-06-15T13:33:59.5624407Z       "id": "REQ-TERM-6",
2026-06-15T13:33:59.5625810Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T13:33:59.5627108Z       "requiredStages": [
2026-06-15T13:33:59.5627346Z         "impl",
2026-06-15T13:33:59.5627561Z         "unit",
2026-06-15T13:33:59.5627783Z         "int"
2026-06-15T13:33:59.5627995Z       ],
2026-06-15T13:33:59.5628196Z       "stages": {
2026-06-15T13:33:59.5628415Z         "doc": {
2026-06-15T13:33:59.5628643Z           "complete": false,
2026-06-15T13:33:59.5628897Z           "evidence": []
2026-06-15T13:33:59.5629211Z         },
2026-06-15T13:33:59.5629422Z         "impl": {
2026-06-15T13:33:59.5629766Z           "complete": true,
2026-06-15T13:33:59.5630014Z           "evidence": [
2026-06-15T13:33:59.5630246Z             {
2026-06-15T13:33:59.5630498Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5630804Z               "line": 132
2026-06-15T13:33:59.5631038Z             },
2026-06-15T13:33:59.5631242Z             {
2026-06-15T13:33:59.5631476Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5631766Z               "line": 176
2026-06-15T13:33:59.5632105Z             },
2026-06-15T13:33:59.5632302Z             {
2026-06-15T13:33:59.5632563Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5632852Z               "line": 17
2026-06-15T13:33:59.5632958Z             },
2026-06-15T13:33:59.5633060Z             {
2026-06-15T13:33:59.5633208Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5633313Z               "line": 96
2026-06-15T13:33:59.5633418Z             },
2026-06-15T13:33:59.5633527Z             {
2026-06-15T13:33:59.5633676Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5633798Z               "line": 319
2026-06-15T13:33:59.5633905Z             },
2026-06-15T13:33:59.5634000Z             {
2026-06-15T13:33:59.5634157Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5634271Z               "line": 396
2026-06-15T13:33:59.5634376Z             }
2026-06-15T13:33:59.5634476Z           ]
2026-06-15T13:33:59.5634586Z         },
2026-06-15T13:33:59.5634690Z         "int": {
2026-06-15T13:33:59.5634811Z           "complete": true,
2026-06-15T13:33:59.5634934Z           "evidence": [
2026-06-15T13:33:59.5635039Z             {
2026-06-15T13:33:59.5635225Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:33:59.5635334Z               "line": 18
2026-06-15T13:33:59.5635445Z             }
2026-06-15T13:33:59.5635554Z           ]
2026-06-15T13:33:59.5635658Z         },
2026-06-15T13:33:59.5635767Z         "unit": {
2026-06-15T13:33:59.5635890Z           "complete": true,
2026-06-15T13:33:59.5636008Z           "evidence": [
2026-06-15T13:33:59.5636113Z             {
2026-06-15T13:33:59.5636275Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5636385Z               "line": 126
2026-06-15T13:33:59.5636490Z             },
2026-06-15T13:33:59.5636604Z             {
2026-06-15T13:33:59.5636758Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5636881Z               "line": 141
2026-06-15T13:33:59.5636985Z             },
2026-06-15T13:33:59.5637082Z             {
2026-06-15T13:33:59.5637234Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5637348Z               "line": 157
2026-06-15T13:33:59.5637458Z             },
2026-06-15T13:33:59.5637557Z             {
2026-06-15T13:33:59.5637712Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T13:33:59.5637820Z               "line": 175
2026-06-15T13:33:59.5637925Z             },
2026-06-15T13:33:59.5638031Z             {
2026-06-15T13:33:59.5638196Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5638305Z               "line": 738
2026-06-15T13:33:59.5638405Z             },
2026-06-15T13:33:59.5638513Z             {
2026-06-15T13:33:59.5638675Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5638776Z               "line": 759
2026-06-15T13:33:59.5638884Z             },
2026-06-15T13:33:59.5639062Z             {
2026-06-15T13:33:59.5639218Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T13:33:59.5639329Z               "line": 602
2026-06-15T13:33:59.5639438Z             }
2026-06-15T13:33:59.5639542Z           ]
2026-06-15T13:33:59.5639644Z         }
2026-06-15T13:33:59.5639753Z       }
2026-06-15T13:33:59.5639852Z     },
2026-06-15T13:33:59.5639954Z     {
2026-06-15T13:33:59.5640072Z       "id": "REQ-TERM-7",
2026-06-15T13:33:59.5641374Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T13:33:59.5641612Z       "requiredStages": [
2026-06-15T13:33:59.5641721Z         "impl",
2026-06-15T13:33:59.5641927Z         "unit",
2026-06-15T13:33:59.5642027Z         "int"
2026-06-15T13:33:59.5642131Z       ],
2026-06-15T13:33:59.5642242Z       "stages": {
2026-06-15T13:33:59.5642341Z         "doc": {
2026-06-15T13:33:59.5642460Z           "complete": false,
2026-06-15T13:33:59.5642566Z           "evidence": []
2026-06-15T13:33:59.5642680Z         },
2026-06-15T13:33:59.5642784Z         "impl": {
2026-06-15T13:33:59.5642904Z           "complete": true,
2026-06-15T13:33:59.5643032Z           "evidence": [
2026-06-15T13:33:59.5643138Z             {
2026-06-15T13:33:59.5643294Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5643412Z               "line": 133
2026-06-15T13:33:59.5643522Z             },
2026-06-15T13:33:59.5643625Z             {
2026-06-15T13:33:59.5643778Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5643893Z               "line": 311
2026-06-15T13:33:59.5643996Z             },
2026-06-15T13:33:59.5644102Z             {
2026-06-15T13:33:59.5644255Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:33:59.5644373Z               "line": 15
2026-06-15T13:33:59.5644479Z             },
2026-06-15T13:33:59.5644584Z             {
2026-06-15T13:33:59.5644727Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:33:59.5644836Z               "line": 32
2026-06-15T13:33:59.5644941Z             },
2026-06-15T13:33:59.5645046Z             {
2026-06-15T13:33:59.5645189Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.5645303Z               "line": 49
2026-06-15T13:33:59.5645400Z             },
2026-06-15T13:33:59.5645508Z             {
2026-06-15T13:33:59.5645656Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5645776Z               "line": 286
2026-06-15T13:33:59.5645880Z             },
2026-06-15T13:33:59.5645991Z             {
2026-06-15T13:33:59.5646142Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5646265Z               "line": 320
2026-06-15T13:33:59.5646370Z             }
2026-06-15T13:33:59.5646473Z           ]
2026-06-15T13:33:59.5646582Z         },
2026-06-15T13:33:59.5646688Z         "int": {
2026-06-15T13:33:59.5646812Z           "complete": true,
2026-06-15T13:33:59.5646916Z           "evidence": [
2026-06-15T13:33:59.5647022Z             {
2026-06-15T13:33:59.5647207Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T13:33:59.5647313Z               "line": 19
2026-06-15T13:33:59.5647422Z             }
2026-06-15T13:33:59.5647526Z           ]
2026-06-15T13:33:59.5647632Z         },
2026-06-15T13:33:59.5647732Z         "unit": {
2026-06-15T13:33:59.5647851Z           "complete": true,
2026-06-15T13:33:59.5647967Z           "evidence": [
2026-06-15T13:33:59.5648070Z             {
2026-06-15T13:33:59.5648218Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5648328Z               "line": 440
2026-06-15T13:33:59.5648428Z             },
2026-06-15T13:33:59.5648538Z             {
2026-06-15T13:33:59.5648691Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T13:33:59.5648808Z               "line": 551
2026-06-15T13:33:59.5648908Z             },
2026-06-15T13:33:59.5649097Z             {
2026-06-15T13:33:59.5649240Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:33:59.5649355Z               "line": 58
2026-06-15T13:33:59.5649473Z             },
2026-06-15T13:33:59.5649574Z             {
2026-06-15T13:33:59.5649831Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:33:59.5649946Z               "line": 77
2026-06-15T13:33:59.5650051Z             },
2026-06-15T13:33:59.5650151Z             {
2026-06-15T13:33:59.5650294Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T13:33:59.5650413Z               "line": 87
2026-06-15T13:33:59.5650519Z             },
2026-06-15T13:33:59.5650623Z             {
2026-06-15T13:33:59.5650770Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T13:33:59.5650980Z               "line": 94
2026-06-15T13:33:59.5651080Z             },
2026-06-15T13:33:59.5651186Z             {
2026-06-15T13:33:59.5651343Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5651449Z               "line": 691
2026-06-15T13:33:59.5651553Z             },
2026-06-15T13:33:59.5651656Z             {
2026-06-15T13:33:59.5651814Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T13:33:59.5651920Z               "line": 716
2026-06-15T13:33:59.5652028Z             }
2026-06-15T13:33:59.5652133Z           ]
2026-06-15T13:33:59.5652234Z         }
2026-06-15T13:33:59.5652342Z       }
2026-06-15T13:33:59.5652439Z     },
2026-06-15T13:33:59.5652548Z     {
2026-06-15T13:33:59.5652662Z       "id": "REQ-UPD-1",
2026-06-15T13:33:59.5652820Z       "title": "Peer-propagated update over P2P",
2026-06-15T13:33:59.5652944Z       "requiredStages": [
2026-06-15T13:33:59.5653049Z         "impl",
2026-06-15T13:33:59.5653159Z         "unit",
2026-06-15T13:33:59.5653268Z         "int"
2026-06-15T13:33:59.5653364Z       ],
2026-06-15T13:33:59.5653469Z       "stages": {
2026-06-15T13:33:59.5653568Z         "doc": {
2026-06-15T13:33:59.5653698Z           "complete": false,
2026-06-15T13:33:59.5653808Z           "evidence": []
2026-06-15T13:33:59.5653916Z         },
2026-06-15T13:33:59.5654021Z         "impl": {
2026-06-15T13:33:59.5654148Z           "complete": true,
2026-06-15T13:33:59.5654261Z           "evidence": [
2026-06-15T13:33:59.5654371Z             {
2026-06-15T13:33:59.5654538Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5654647Z               "line": 28
2026-06-15T13:33:59.5654753Z             },
2026-06-15T13:33:59.5654852Z             {
2026-06-15T13:33:59.5655011Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5655120Z               "line": 103
2026-06-15T13:33:59.5655234Z             },
2026-06-15T13:33:59.5655330Z             {
2026-06-15T13:33:59.5655482Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5655606Z               "line": 342
2026-06-15T13:33:59.5655711Z             },
2026-06-15T13:33:59.5655816Z             {
2026-06-15T13:33:59.5655965Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5656078Z               "line": 22
2026-06-15T13:33:59.5656187Z             },
2026-06-15T13:33:59.5656294Z             {
2026-06-15T13:33:59.5656450Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5656570Z               "line": 207
2026-06-15T13:33:59.5656679Z             },
2026-06-15T13:33:59.5656778Z             {
2026-06-15T13:33:59.5656926Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5657043Z               "line": 283
2026-06-15T13:33:59.5657147Z             },
2026-06-15T13:33:59.5657253Z             {
2026-06-15T13:33:59.5657400Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5657519Z               "line": 340
2026-06-15T13:33:59.5657625Z             },
2026-06-15T13:33:59.5661006Z             {
2026-06-15T13:33:59.5661197Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5661311Z               "line": 37
2026-06-15T13:33:59.5661422Z             }
2026-06-15T13:33:59.5661526Z           ]
2026-06-15T13:33:59.5661635Z         },
2026-06-15T13:33:59.5661733Z         "int": {
2026-06-15T13:33:59.5661855Z           "complete": true,
2026-06-15T13:33:59.5661975Z           "evidence": [
2026-06-15T13:33:59.5662245Z             {
2026-06-15T13:33:59.5662427Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T13:33:59.5662546Z               "line": 207
2026-06-15T13:33:59.5662655Z             },
2026-06-15T13:33:59.5662761Z             {
2026-06-15T13:33:59.5662926Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T13:33:59.5663047Z               "line": 988
2026-06-15T13:33:59.5663152Z             }
2026-06-15T13:33:59.5663251Z           ]
2026-06-15T13:33:59.5663461Z         },
2026-06-15T13:33:59.5663566Z         "unit": {
2026-06-15T13:33:59.5663686Z           "complete": true,
2026-06-15T13:33:59.5663795Z           "evidence": [
2026-06-15T13:33:59.5663900Z             {
2026-06-15T13:33:59.5664053Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5664157Z               "line": 490
2026-06-15T13:33:59.5664263Z             },
2026-06-15T13:33:59.5664368Z             {
2026-06-15T13:33:59.5664514Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5664623Z               "line": 616
2026-06-15T13:33:59.5664732Z             },
2026-06-15T13:33:59.5664835Z             {
2026-06-15T13:33:59.5664998Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.5665102Z               "line": 277
2026-06-15T13:33:59.5665207Z             },
2026-06-15T13:33:59.5665313Z             {
2026-06-15T13:33:59.5665455Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5665571Z               "line": 124
2026-06-15T13:33:59.5665670Z             },
2026-06-15T13:33:59.5665770Z             {
2026-06-15T13:33:59.5665914Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5666019Z               "line": 200
2026-06-15T13:33:59.5666118Z             }
2026-06-15T13:33:59.5666224Z           ]
2026-06-15T13:33:59.5666328Z         }
2026-06-15T13:33:59.5666433Z       }
2026-06-15T13:33:59.5666539Z     },
2026-06-15T13:33:59.5666642Z     {
2026-06-15T13:33:59.5666757Z       "id": "REQ-UPD-2",
2026-06-15T13:33:59.5666943Z       "title": "All binaries signature-verified before handoff",
2026-06-15T13:33:59.5667062Z       "requiredStages": [
2026-06-15T13:33:59.5667169Z         "impl",
2026-06-15T13:33:59.5667268Z         "unit"
2026-06-15T13:33:59.5667376Z       ],
2026-06-15T13:33:59.5667486Z       "stages": {
2026-06-15T13:33:59.5667590Z         "doc": {
2026-06-15T13:33:59.5667712Z           "complete": false,
2026-06-15T13:33:59.5667822Z           "evidence": []
2026-06-15T13:33:59.5667928Z         },
2026-06-15T13:33:59.5668036Z         "impl": {
2026-06-15T13:33:59.5668157Z           "complete": true,
2026-06-15T13:33:59.5668270Z           "evidence": [
2026-06-15T13:33:59.5668379Z             {
2026-06-15T13:33:59.5668542Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5668646Z               "line": 343
2026-06-15T13:33:59.5668752Z             },
2026-06-15T13:33:59.5668852Z             {
2026-06-15T13:33:59.5669082Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5669209Z               "line": 476
2026-06-15T13:33:59.5669310Z             },
2026-06-15T13:33:59.5669416Z             {
2026-06-15T13:33:59.5669557Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5669673Z               "line": 29
2026-06-15T13:33:59.5669778Z             },
2026-06-15T13:33:59.5669872Z             {
2026-06-15T13:33:59.5670019Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5670137Z               "line": 271
2026-06-15T13:33:59.5670236Z             },
2026-06-15T13:33:59.5670341Z             {
2026-06-15T13:33:59.5670489Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5670607Z               "line": 288
2026-06-15T13:33:59.5670709Z             },
2026-06-15T13:33:59.5670814Z             {
2026-06-15T13:33:59.5670951Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5671056Z               "line": 408
2026-06-15T13:33:59.5671266Z             },
2026-06-15T13:33:59.5671371Z             {
2026-06-15T13:33:59.5671514Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5671634Z               "line": 540
2026-06-15T13:33:59.5671738Z             },
2026-06-15T13:33:59.5671843Z             {
2026-06-15T13:33:59.5671997Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5672100Z               "line": 155
2026-06-15T13:33:59.5672205Z             }
2026-06-15T13:33:59.5672400Z           ]
2026-06-15T13:33:59.5672506Z         },
2026-06-15T13:33:59.5672598Z         "int": {
2026-06-15T13:33:59.5672720Z           "complete": false,
2026-06-15T13:33:59.5672833Z           "evidence": []
2026-06-15T13:33:59.5672935Z         },
2026-06-15T13:33:59.5673044Z         "unit": {
2026-06-15T13:33:59.5673157Z           "complete": true,
2026-06-15T13:33:59.5673273Z           "evidence": [
2026-06-15T13:33:59.5673369Z             {
2026-06-15T13:33:59.5673516Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5673626Z               "line": 697
2026-06-15T13:33:59.5673730Z             },
2026-06-15T13:33:59.5673826Z             {
2026-06-15T13:33:59.5673974Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5674093Z               "line": 758
2026-06-15T13:33:59.5674189Z             },
2026-06-15T13:33:59.5674289Z             {
2026-06-15T13:33:59.5674440Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5674556Z               "line": 772
2026-06-15T13:33:59.5674660Z             },
2026-06-15T13:33:59.5674765Z             {
2026-06-15T13:33:59.5674913Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5675021Z               "line": 788
2026-06-15T13:33:59.5675131Z             },
2026-06-15T13:33:59.5675231Z             {
2026-06-15T13:33:59.5675372Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5675487Z               "line": 879
2026-06-15T13:33:59.5675583Z             },
2026-06-15T13:33:59.5675681Z             {
2026-06-15T13:33:59.5675835Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5675944Z               "line": 414
2026-06-15T13:33:59.5676049Z             },
2026-06-15T13:33:59.5676150Z             {
2026-06-15T13:33:59.5676302Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5676412Z               "line": 427
2026-06-15T13:33:59.5676517Z             },
2026-06-15T13:33:59.5676622Z             {
2026-06-15T13:33:59.5676774Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.5676883Z               "line": 410
2026-06-15T13:33:59.5676983Z             }
2026-06-15T13:33:59.5677089Z           ]
2026-06-15T13:33:59.5677194Z         }
2026-06-15T13:33:59.5677298Z       }
2026-06-15T13:33:59.5677400Z     },
2026-06-15T13:33:59.5677504Z     {
2026-06-15T13:33:59.5677618Z       "id": "REQ-UPD-3",
2026-06-15T13:33:59.5677833Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T13:33:59.5677965Z       "requiredStages": [
2026-06-15T13:33:59.5678065Z         "impl",
2026-06-15T13:33:59.5678164Z         "unit",
2026-06-15T13:33:59.5678267Z         "int"
2026-06-15T13:33:59.5678368Z       ],
2026-06-15T13:33:59.5678474Z       "stages": {
2026-06-15T13:33:59.5678572Z         "doc": {
2026-06-15T13:33:59.5678703Z           "complete": false,
2026-06-15T13:33:59.5678812Z           "evidence": []
2026-06-15T13:33:59.5678916Z         },
2026-06-15T13:33:59.5679102Z         "impl": {
2026-06-15T13:33:59.5679221Z           "complete": true,
2026-06-15T13:33:59.5679337Z           "evidence": [
2026-06-15T13:33:59.5679431Z             {
2026-06-15T13:33:59.5679588Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5679699Z               "line": 40
2026-06-15T13:33:59.5679803Z             },
2026-06-15T13:33:59.5679908Z             {
2026-06-15T13:33:59.5680065Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5680281Z               "line": 87
2026-06-15T13:33:59.5680380Z             },
2026-06-15T13:33:59.5680484Z             {
2026-06-15T13:33:59.5680627Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T13:33:59.5680744Z               "line": 993
2026-06-15T13:33:59.5680853Z             },
2026-06-15T13:33:59.5680949Z             {
2026-06-15T13:33:59.5681101Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T13:33:59.5681206Z               "line": 1085
2026-06-15T13:33:59.5681397Z             },
2026-06-15T13:33:59.5681501Z             {
2026-06-15T13:33:59.5681650Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5681754Z               "line": 26
2026-06-15T13:33:59.5681851Z             },
2026-06-15T13:33:59.5681960Z             {
2026-06-15T13:33:59.5682103Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5682214Z               "line": 114
2026-06-15T13:33:59.5682322Z             },
2026-06-15T13:33:59.5682422Z             {
2026-06-15T13:33:59.5682571Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5682670Z               "line": 246
2026-06-15T13:33:59.5682780Z             },
2026-06-15T13:33:59.5682881Z             {
2026-06-15T13:33:59.5683023Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5683138Z               "line": 2174
2026-06-15T13:33:59.5683238Z             }
2026-06-15T13:33:59.5683337Z           ]
2026-06-15T13:33:59.5683442Z         },
2026-06-15T13:33:59.5683543Z         "int": {
2026-06-15T13:33:59.5683647Z           "complete": true,
2026-06-15T13:33:59.5683761Z           "evidence": [
2026-06-15T13:33:59.5683862Z             {
2026-06-15T13:33:59.5684018Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T13:33:59.5684120Z               "line": 58
2026-06-15T13:33:59.5684224Z             }
2026-06-15T13:33:59.5684324Z           ]
2026-06-15T13:33:59.5684429Z         },
2026-06-15T13:33:59.5684539Z         "unit": {
2026-06-15T13:33:59.5684648Z           "complete": true,
2026-06-15T13:33:59.5684764Z           "evidence": [
2026-06-15T13:33:59.5684853Z             {
2026-06-15T13:33:59.5685000Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5685107Z               "line": 532
2026-06-15T13:33:59.5685210Z             },
2026-06-15T13:33:59.5685311Z             {
2026-06-15T13:33:59.5685464Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5685582Z               "line": 583
2026-06-15T13:33:59.5685686Z             },
2026-06-15T13:33:59.5685786Z             {
2026-06-15T13:33:59.5685937Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5686052Z               "line": 651
2026-06-15T13:33:59.5686157Z             },
2026-06-15T13:33:59.5686260Z             {
2026-06-15T13:33:59.5686400Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T13:33:59.5686514Z               "line": 1062
2026-06-15T13:33:59.5686618Z             },
2026-06-15T13:33:59.5686720Z             {
2026-06-15T13:33:59.5686862Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5686977Z               "line": 271
2026-06-15T13:33:59.5687082Z             },
2026-06-15T13:33:59.5687182Z             {
2026-06-15T13:33:59.5687330Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5687434Z               "line": 295
2026-06-15T13:33:59.5687534Z             },
2026-06-15T13:33:59.5687636Z             {
2026-06-15T13:33:59.5687791Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5687907Z               "line": 316
2026-06-15T13:33:59.5688002Z             },
2026-06-15T13:33:59.5688115Z             {
2026-06-15T13:33:59.5688260Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5688379Z               "line": 332
2026-06-15T13:33:59.5688472Z             }
2026-06-15T13:33:59.5688577Z           ]
2026-06-15T13:33:59.5688682Z         }
2026-06-15T13:33:59.5688851Z       }
2026-06-15T13:33:59.5689019Z     },
2026-06-15T13:33:59.5689113Z     {
2026-06-15T13:33:59.5689234Z       "id": "REQ-UPD-4",
2026-06-15T13:33:59.5689452Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T13:33:59.5689577Z       "requiredStages": [
2026-06-15T13:33:59.5689677Z         "impl",
2026-06-15T13:33:59.5689776Z         "unit"
2026-06-15T13:33:59.5689873Z       ],
2026-06-15T13:33:59.5689973Z       "stages": {
2026-06-15T13:33:59.5690178Z         "doc": {
2026-06-15T13:33:59.5690297Z           "complete": false,
2026-06-15T13:33:59.5690410Z           "evidence": []
2026-06-15T13:33:59.5690512Z         },
2026-06-15T13:33:59.5690612Z         "impl": {
2026-06-15T13:33:59.5690735Z           "complete": true,
2026-06-15T13:33:59.5690846Z           "evidence": [
2026-06-15T13:33:59.5690950Z             {
2026-06-15T13:33:59.5691096Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5691216Z               "line": 41
2026-06-15T13:33:59.5691323Z             },
2026-06-15T13:33:59.5691422Z             {
2026-06-15T13:33:59.5691572Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5691680Z               "line": 88
2026-06-15T13:33:59.5691786Z             },
2026-06-15T13:33:59.5691881Z             {
2026-06-15T13:33:59.5692038Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5692149Z               "line": 23
2026-06-15T13:33:59.5692254Z             },
2026-06-15T13:33:59.5692357Z             {
2026-06-15T13:33:59.5692506Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5692615Z               "line": 56
2026-06-15T13:33:59.5692715Z             },
2026-06-15T13:33:59.5692821Z             {
2026-06-15T13:33:59.5692963Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5693064Z               "line": 77
2026-06-15T13:33:59.5693159Z             },
2026-06-15T13:33:59.5693259Z             {
2026-06-15T13:33:59.5693408Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T13:33:59.5693511Z               "line": 186
2026-06-15T13:33:59.5693612Z             },
2026-06-15T13:33:59.5693708Z             {
2026-06-15T13:33:59.5693854Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T13:33:59.5693968Z               "line": 108
2026-06-15T13:33:59.5694069Z             },
2026-06-15T13:33:59.5694169Z             {
2026-06-15T13:33:59.5694316Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.5694432Z               "line": 180
2026-06-15T13:33:59.5694531Z             },
2026-06-15T13:33:59.5694626Z             {
2026-06-15T13:33:59.5694765Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5694879Z               "line": 2173
2026-06-15T13:33:59.5694984Z             }
2026-06-15T13:33:59.5695084Z           ]
2026-06-15T13:33:59.5695179Z         },
2026-06-15T13:33:59.5695285Z         "int": {
2026-06-15T13:33:59.5695404Z           "complete": false,
2026-06-15T13:33:59.5695523Z           "evidence": []
2026-06-15T13:33:59.5695624Z         },
2026-06-15T13:33:59.5695728Z         "unit": {
2026-06-15T13:33:59.5695847Z           "complete": true,
2026-06-15T13:33:59.5695953Z           "evidence": [
2026-06-15T13:33:59.5696053Z             {
2026-06-15T13:33:59.5696194Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5696304Z               "line": 579
2026-06-15T13:33:59.5696402Z             },
2026-06-15T13:33:59.5696511Z             {
2026-06-15T13:33:59.5696655Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5696769Z               "line": 704
2026-06-15T13:33:59.5696869Z             },
2026-06-15T13:33:59.5696975Z             {
2026-06-15T13:33:59.5697122Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T13:33:59.5697232Z               "line": 384
2026-06-15T13:33:59.5697332Z             },
2026-06-15T13:33:59.5697422Z             {
2026-06-15T13:33:59.5697689Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5697808Z               "line": 102
2026-06-15T13:33:59.5697909Z             },
2026-06-15T13:33:59.5698009Z             {
2026-06-15T13:33:59.5698152Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5698267Z               "line": 123
2026-06-15T13:33:59.5698376Z             },
2026-06-15T13:33:59.5698477Z             {
2026-06-15T13:33:59.5698619Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T13:33:59.5698796Z               "line": 142
2026-06-15T13:33:59.5698901Z             },
2026-06-15T13:33:59.5699075Z             {
2026-06-15T13:33:59.5699223Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T13:33:59.5699326Z               "line": 413
2026-06-15T13:33:59.5699431Z             },
2026-06-15T13:33:59.5699537Z             {
2026-06-15T13:33:59.5699679Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T13:33:59.5699794Z               "line": 566
2026-06-15T13:33:59.5699903Z             },
2026-06-15T13:33:59.5700007Z             {
2026-06-15T13:33:59.5700142Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5700247Z               "line": 6733
2026-06-15T13:33:59.5700350Z             }
2026-06-15T13:33:59.5700452Z           ]
2026-06-15T13:33:59.5700552Z         }
2026-06-15T13:33:59.5700651Z       }
2026-06-15T13:33:59.5700753Z     },
2026-06-15T13:33:59.5700857Z     {
2026-06-15T13:33:59.5700962Z       "id": "REQ-UPD-5",
2026-06-15T13:33:59.5701139Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T13:33:59.5701252Z       "requiredStages": [
2026-06-15T13:33:59.5701358Z         "impl",
2026-06-15T13:33:59.5701458Z         "unit"
2026-06-15T13:33:59.5701557Z       ],
2026-06-15T13:33:59.5701656Z       "stages": {
2026-06-15T13:33:59.5701761Z         "doc": {
2026-06-15T13:33:59.5701879Z           "complete": false,
2026-06-15T13:33:59.5701987Z           "evidence": []
2026-06-15T13:33:59.5702089Z         },
2026-06-15T13:33:59.5702198Z         "impl": {
2026-06-15T13:33:59.5702317Z           "complete": true,
2026-06-15T13:33:59.5702432Z           "evidence": [
2026-06-15T13:33:59.5702532Z             {
2026-06-15T13:33:59.5702699Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5702804Z               "line": 27
2026-06-15T13:33:59.5702913Z             },
2026-06-15T13:33:59.5703014Z             {
2026-06-15T13:33:59.5703176Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5703295Z               "line": 82
2026-06-15T13:33:59.5703395Z             },
2026-06-15T13:33:59.5703500Z             {
2026-06-15T13:33:59.5703658Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5703771Z               "line": 134
2026-06-15T13:33:59.5703867Z             },
2026-06-15T13:33:59.5703973Z             {
2026-06-15T13:33:59.5704124Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5704235Z               "line": 492
2026-06-15T13:33:59.5704336Z             },
2026-06-15T13:33:59.5704433Z             {
2026-06-15T13:33:59.5704586Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5704687Z               "line": 528
2026-06-15T13:33:59.5704795Z             }
2026-06-15T13:33:59.5704901Z           ]
2026-06-15T13:33:59.5704996Z         },
2026-06-15T13:33:59.5705095Z         "int": {
2026-06-15T13:33:59.5705216Z           "complete": false,
2026-06-15T13:33:59.5705325Z           "evidence": []
2026-06-15T13:33:59.5705429Z         },
2026-06-15T13:33:59.5705535Z         "unit": {
2026-06-15T13:33:59.5705659Z           "complete": true,
2026-06-15T13:33:59.5705763Z           "evidence": [
2026-06-15T13:33:59.5705869Z             {
2026-06-15T13:33:59.5706026Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5706140Z               "line": 232
2026-06-15T13:33:59.5706237Z             },
2026-06-15T13:33:59.5706345Z             {
2026-06-15T13:33:59.5706603Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5706717Z               "line": 246
2026-06-15T13:33:59.5706825Z             },
2026-06-15T13:33:59.5706934Z             {
2026-06-15T13:33:59.5707095Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5707205Z               "line": 260
2026-06-15T13:33:59.5707310Z             },
2026-06-15T13:33:59.5707414Z             {
2026-06-15T13:33:59.5707573Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5707773Z               "line": 274
2026-06-15T13:33:59.5707882Z             },
2026-06-15T13:33:59.5707982Z             {
2026-06-15T13:33:59.5708141Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T13:33:59.5708259Z               "line": 308
2026-06-15T13:33:59.5708354Z             },
2026-06-15T13:33:59.5708455Z             {
2026-06-15T13:33:59.5708602Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T13:33:59.5708712Z               "line": 911
2026-06-15T13:33:59.5708822Z             }
2026-06-15T13:33:59.5708926Z           ]
2026-06-15T13:33:59.5709113Z         }
2026-06-15T13:33:59.5709217Z       }
2026-06-15T13:33:59.5709317Z     },
2026-06-15T13:33:59.5709419Z     {
2026-06-15T13:33:59.5709531Z       "id": "REQ-UPD-6",
2026-06-15T13:33:59.5710435Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T13:33:59.5710558Z       "requiredStages": [
2026-06-15T13:33:59.5710659Z         "doc",
2026-06-15T13:33:59.5710759Z         "impl",
2026-06-15T13:33:59.5710863Z         "unit",
2026-06-15T13:33:59.5710968Z         "int"
2026-06-15T13:33:59.5711074Z       ],
2026-06-15T13:33:59.5711178Z       "stages": {
2026-06-15T13:33:59.5711293Z         "doc": {
2026-06-15T13:33:59.5711408Z           "complete": true,
2026-06-15T13:33:59.5711527Z           "evidence": [
2026-06-15T13:33:59.5711628Z             {
2026-06-15T13:33:59.5711802Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:33:59.5711904Z               "line": 3
2026-06-15T13:33:59.5712000Z             },
2026-06-15T13:33:59.5712113Z             {
2026-06-15T13:33:59.5712264Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T13:33:59.5712392Z               "line": 3
2026-06-15T13:33:59.5712490Z             },
2026-06-15T13:33:59.5712591Z             {
2026-06-15T13:33:59.5712782Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T13:33:59.5712886Z               "line": 3
2026-06-15T13:33:59.5712993Z             }
2026-06-15T13:33:59.5713097Z           ]
2026-06-15T13:33:59.5713201Z         },
2026-06-15T13:33:59.5713297Z         "impl": {
2026-06-15T13:33:59.5713421Z           "complete": true,
2026-06-15T13:33:59.5713526Z           "evidence": [
2026-06-15T13:33:59.5713626Z             {
2026-06-15T13:33:59.5713788Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5713894Z               "line": 76
2026-06-15T13:33:59.5713998Z             },
2026-06-15T13:33:59.5714097Z             {
2026-06-15T13:33:59.5714237Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5714345Z               "line": 212
2026-06-15T13:33:59.5714451Z             },
2026-06-15T13:33:59.5714557Z             {
2026-06-15T13:33:59.5714713Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5714819Z               "line": 69
2026-06-15T13:33:59.5714924Z             },
2026-06-15T13:33:59.5715027Z             {
2026-06-15T13:33:59.5715170Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5715276Z               "line": 133
2026-06-15T13:33:59.5715384Z             },
2026-06-15T13:33:59.5715484Z             {
2026-06-15T13:33:59.5715737Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5715853Z               "line": 243
2026-06-15T13:33:59.5715962Z             },
2026-06-15T13:33:59.5716061Z             {
2026-06-15T13:33:59.5716200Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5716318Z               "line": 406
2026-06-15T13:33:59.5716420Z             },
2026-06-15T13:33:59.5716529Z             {
2026-06-15T13:33:59.5716681Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5716890Z               "line": 534
2026-06-15T13:33:59.5716996Z             },
2026-06-15T13:33:59.5717098Z             {
2026-06-15T13:33:59.5717243Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5717357Z               "line": 548
2026-06-15T13:33:59.5717471Z             },
2026-06-15T13:33:59.5717574Z             {
2026-06-15T13:33:59.5717717Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5717833Z               "line": 603
2026-06-15T13:33:59.5717941Z             },
2026-06-15T13:33:59.5718047Z             {
2026-06-15T13:33:59.5718189Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5718308Z               "line": 634
2026-06-15T13:33:59.5718409Z             },
2026-06-15T13:33:59.5718514Z             {
2026-06-15T13:33:59.5718682Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:33:59.5718795Z               "line": 137
2026-06-15T13:33:59.5718895Z             },
2026-06-15T13:33:59.5719067Z             {
2026-06-15T13:33:59.5719229Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T13:33:59.5719340Z               "line": 184
2026-06-15T13:33:59.5719434Z             },
2026-06-15T13:33:59.5719539Z             {
2026-06-15T13:33:59.5719692Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5719811Z               "line": 78
2026-06-15T13:33:59.5719907Z             },
2026-06-15T13:33:59.5720021Z             {
2026-06-15T13:33:59.5720167Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5720287Z               "line": 114
2026-06-15T13:33:59.5720390Z             },
2026-06-15T13:33:59.5720489Z             {
2026-06-15T13:33:59.5720637Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5720742Z               "line": 185
2026-06-15T13:33:59.5720841Z             },
2026-06-15T13:33:59.5720943Z             {
2026-06-15T13:33:59.5721090Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5721209Z               "line": 260
2026-06-15T13:33:59.5721310Z             },
2026-06-15T13:33:59.5721414Z             {
2026-06-15T13:33:59.5721558Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5721677Z               "line": 292
2026-06-15T13:33:59.5721777Z             },
2026-06-15T13:33:59.5721878Z             {
2026-06-15T13:33:59.5722024Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5722129Z               "line": 323
2026-06-15T13:33:59.5722235Z             },
2026-06-15T13:33:59.5722339Z             {
2026-06-15T13:33:59.5722488Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5722607Z               "line": 346
2026-06-15T13:33:59.5722701Z             },
2026-06-15T13:33:59.5722810Z             {
2026-06-15T13:33:59.5722952Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5723074Z               "line": 388
2026-06-15T13:33:59.5723176Z             },
2026-06-15T13:33:59.5723276Z             {
2026-06-15T13:33:59.5723423Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5723529Z               "line": 398
2026-06-15T13:33:59.5723638Z             },
2026-06-15T13:33:59.5723738Z             {
2026-06-15T13:33:59.5723891Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5724000Z               "line": 410
2026-06-15T13:33:59.5724101Z             },
2026-06-15T13:33:59.5724310Z             {
2026-06-15T13:33:59.5724449Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5724567Z               "line": 420
2026-06-15T13:33:59.5724667Z             },
2026-06-15T13:33:59.5724773Z             {
2026-06-15T13:33:59.5724920Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5725031Z               "line": 439
2026-06-15T13:33:59.5725136Z             },
2026-06-15T13:33:59.5725230Z             {
2026-06-15T13:33:59.5725370Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5725601Z               "line": 449
2026-06-15T13:33:59.5725706Z             },
2026-06-15T13:33:59.5725802Z             {
2026-06-15T13:33:59.5725958Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5726074Z               "line": 94
2026-06-15T13:33:59.5726184Z             },
2026-06-15T13:33:59.5726287Z             {
2026-06-15T13:33:59.5726422Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5726540Z               "line": 120
2026-06-15T13:33:59.5726650Z             },
2026-06-15T13:33:59.5726751Z             {
2026-06-15T13:33:59.5726897Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5727004Z               "line": 135
2026-06-15T13:33:59.5727108Z             },
2026-06-15T13:33:59.5727212Z             {
2026-06-15T13:33:59.5727357Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5727474Z               "line": 162
2026-06-15T13:33:59.5727585Z             },
2026-06-15T13:33:59.5727691Z             {
2026-06-15T13:33:59.5727837Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5727951Z               "line": 174
2026-06-15T13:33:59.5728055Z             },
2026-06-15T13:33:59.5728154Z             {
2026-06-15T13:33:59.5728297Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5728402Z               "line": 185
2026-06-15T13:33:59.5728506Z             },
2026-06-15T13:33:59.5728607Z             {
2026-06-15T13:33:59.5728750Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5728849Z               "line": 451
2026-06-15T13:33:59.5729017Z             },
2026-06-15T13:33:59.5729111Z             {
2026-06-15T13:33:59.5729251Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5729355Z               "line": 555
2026-06-15T13:33:59.5729460Z             },
2026-06-15T13:33:59.5729561Z             {
2026-06-15T13:33:59.5729709Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5729827Z               "line": 171
2026-06-15T13:33:59.5729924Z             },
2026-06-15T13:33:59.5730027Z             {
2026-06-15T13:33:59.5730176Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5730285Z               "line": 65
2026-06-15T13:33:59.5730395Z             },
2026-06-15T13:33:59.5730491Z             {
2026-06-15T13:33:59.5730633Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5730751Z               "line": 71
2026-06-15T13:33:59.5730856Z             },
2026-06-15T13:33:59.5730950Z             {
2026-06-15T13:33:59.5731096Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T13:33:59.5731202Z               "line": 77
2026-06-15T13:33:59.5731307Z             },
2026-06-15T13:33:59.5731397Z             {
2026-06-15T13:33:59.5731541Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5731645Z               "line": 778
2026-06-15T13:33:59.5731755Z             },
2026-06-15T13:33:59.5731846Z             {
2026-06-15T13:33:59.5731979Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5732099Z               "line": 795
2026-06-15T13:33:59.5732199Z             },
2026-06-15T13:33:59.5732313Z             {
2026-06-15T13:33:59.5732448Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5732551Z               "line": 838
2026-06-15T13:33:59.5732651Z             },
2026-06-15T13:33:59.5732861Z             {
2026-06-15T13:33:59.5733004Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5733111Z               "line": 981
2026-06-15T13:33:59.5733214Z             },
2026-06-15T13:33:59.5733317Z             {
2026-06-15T13:33:59.5733461Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5733573Z               "line": 1131
2026-06-15T13:33:59.5733673Z             }
2026-06-15T13:33:59.5733779Z           ]
2026-06-15T13:33:59.5733878Z         },
2026-06-15T13:33:59.5734079Z         "int": {
2026-06-15T13:33:59.5734193Z           "complete": true,
2026-06-15T13:33:59.5734312Z           "evidence": [
2026-06-15T13:33:59.5734413Z             {
2026-06-15T13:33:59.5734565Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.5734681Z               "line": 569
2026-06-15T13:33:59.5734780Z             },
2026-06-15T13:33:59.5734884Z             {
2026-06-15T13:33:59.5735024Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:33:59.5735147Z               "line": 135
2026-06-15T13:33:59.5735247Z             }
2026-06-15T13:33:59.5735348Z           ]
2026-06-15T13:33:59.5735452Z         },
2026-06-15T13:33:59.5735556Z         "unit": {
2026-06-15T13:33:59.5735672Z           "complete": true,
2026-06-15T13:33:59.5735785Z           "evidence": [
2026-06-15T13:33:59.5735891Z             {
2026-06-15T13:33:59.5736044Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5736156Z               "line": 624
2026-06-15T13:33:59.5736266Z             },
2026-06-15T13:33:59.5736372Z             {
2026-06-15T13:33:59.5736514Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5736619Z               "line": 673
2026-06-15T13:33:59.5736730Z             },
2026-06-15T13:33:59.5736828Z             {
2026-06-15T13:33:59.5736982Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T13:33:59.5737091Z               "line": 696
2026-06-15T13:33:59.5737191Z             },
2026-06-15T13:33:59.5737306Z             {
2026-06-15T13:33:59.5737453Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5737569Z               "line": 513
2026-06-15T13:33:59.5737668Z             },
2026-06-15T13:33:59.5737768Z             {
2026-06-15T13:33:59.5737917Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5738025Z               "line": 638
2026-06-15T13:33:59.5738131Z             },
2026-06-15T13:33:59.5738227Z             {
2026-06-15T13:33:59.5738387Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5738492Z               "line": 675
2026-06-15T13:33:59.5738601Z             },
2026-06-15T13:33:59.5741595Z             {
2026-06-15T13:33:59.5741786Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5741909Z               "line": 894
2026-06-15T13:33:59.5742015Z             },
2026-06-15T13:33:59.5742120Z             {
2026-06-15T13:33:59.5742282Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5742416Z               "line": 916
2026-06-15T13:33:59.5742515Z             },
2026-06-15T13:33:59.5742620Z             {
2026-06-15T13:33:59.5742782Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5742902Z               "line": 933
2026-06-15T13:33:59.5743003Z             },
2026-06-15T13:33:59.5743106Z             {
2026-06-15T13:33:59.5743250Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5743365Z               "line": 948
2026-06-15T13:33:59.5743469Z             },
2026-06-15T13:33:59.5743569Z             {
2026-06-15T13:33:59.5743704Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5743821Z               "line": 974
2026-06-15T13:33:59.5743921Z             },
2026-06-15T13:33:59.5744025Z             {
2026-06-15T13:33:59.5744162Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T13:33:59.5744276Z               "line": 457
2026-06-15T13:33:59.5744519Z             },
2026-06-15T13:33:59.5744621Z             {
2026-06-15T13:33:59.5744781Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T13:33:59.5744887Z               "line": 338
2026-06-15T13:33:59.5744997Z             },
2026-06-15T13:33:59.5745096Z             {
2026-06-15T13:33:59.5745226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5745340Z               "line": 8875
2026-06-15T13:33:59.5745439Z             },
2026-06-15T13:33:59.5745540Z             {
2026-06-15T13:33:59.5745764Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5745880Z               "line": 1260
2026-06-15T13:33:59.5745978Z             },
2026-06-15T13:33:59.5746079Z             {
2026-06-15T13:33:59.5746232Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T13:33:59.5746341Z               "line": 130
2026-06-15T13:33:59.5746432Z             }
2026-06-15T13:33:59.5746538Z           ]
2026-06-15T13:33:59.5746632Z         }
2026-06-15T13:33:59.5746740Z       }
2026-06-15T13:33:59.5746846Z     },
2026-06-15T13:33:59.5746947Z     {
2026-06-15T13:33:59.5747064Z       "id": "REQ-UPD-7",
2026-06-15T13:33:59.5749393Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T13:33:59.5749536Z       "requiredStages": [
2026-06-15T13:33:59.5749631Z         "impl",
2026-06-15T13:33:59.5749736Z         "unit"
2026-06-15T13:33:59.5749842Z       ],
2026-06-15T13:33:59.5749950Z       "stages": {
2026-06-15T13:33:59.5750047Z         "doc": {
2026-06-15T13:33:59.5750171Z           "complete": false,
2026-06-15T13:33:59.5750289Z           "evidence": []
2026-06-15T13:33:59.5750390Z         },
2026-06-15T13:33:59.5750495Z         "impl": {
2026-06-15T13:33:59.5750614Z           "complete": true,
2026-06-15T13:33:59.5750719Z           "evidence": [
2026-06-15T13:33:59.5750814Z             {
2026-06-15T13:33:59.5750952Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5751077Z               "line": 2278
2026-06-15T13:33:59.5751182Z             }
2026-06-15T13:33:59.5751282Z           ]
2026-06-15T13:33:59.5751383Z         },
2026-06-15T13:33:59.5751486Z         "int": {
2026-06-15T13:33:59.5751602Z           "complete": false,
2026-06-15T13:33:59.5751712Z           "evidence": []
2026-06-15T13:33:59.5751814Z         },
2026-06-15T13:33:59.5751914Z         "unit": {
2026-06-15T13:33:59.5752038Z           "complete": true,
2026-06-15T13:33:59.5752150Z           "evidence": [
2026-06-15T13:33:59.5752261Z             {
2026-06-15T13:33:59.5752400Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5752513Z               "line": 8851
2026-06-15T13:33:59.5752609Z             }
2026-06-15T13:33:59.5752709Z           ]
2026-06-15T13:33:59.5752813Z         }
2026-06-15T13:33:59.5752914Z       }
2026-06-15T13:33:59.5753014Z     },
2026-06-15T13:33:59.5753118Z     {
2026-06-15T13:33:59.5753233Z       "id": "REQ-UPD-8",
2026-06-15T13:33:59.5755886Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T13:33:59.5756130Z       "requiredStages": [
2026-06-15T13:33:59.5756238Z         "impl",
2026-06-15T13:33:59.5756334Z         "unit"
2026-06-15T13:33:59.5756435Z       ],
2026-06-15T13:33:59.5756643Z       "stages": {
2026-06-15T13:33:59.5756745Z         "doc": {
2026-06-15T13:33:59.5756863Z           "complete": false,
2026-06-15T13:33:59.5756978Z           "evidence": []
2026-06-15T13:33:59.5757074Z         },
2026-06-15T13:33:59.5757182Z         "impl": {
2026-06-15T13:33:59.5757286Z           "complete": true,
2026-06-15T13:33:59.5757396Z           "evidence": [
2026-06-15T13:33:59.5757497Z             {
2026-06-15T13:33:59.5757658Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5757773Z               "line": 77
2026-06-15T13:33:59.5757868Z             },
2026-06-15T13:33:59.5757972Z             {
2026-06-15T13:33:59.5758140Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5758245Z               "line": 49
2026-06-15T13:33:59.5758345Z             },
2026-06-15T13:33:59.5758445Z             {
2026-06-15T13:33:59.5758597Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5758718Z               "line": 152
2026-06-15T13:33:59.5758817Z             },
2026-06-15T13:33:59.5758921Z             {
2026-06-15T13:33:59.5759155Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5759270Z               "line": 215
2026-06-15T13:33:59.5759371Z             },
2026-06-15T13:33:59.5759465Z             {
2026-06-15T13:33:59.5759612Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5759731Z               "line": 230
2026-06-15T13:33:59.5759838Z             },
2026-06-15T13:33:59.5759939Z             {
2026-06-15T13:33:59.5760088Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5760191Z               "line": 247
2026-06-15T13:33:59.5760297Z             },
2026-06-15T13:33:59.5760392Z             {
2026-06-15T13:33:59.5760539Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5760655Z               "line": 269
2026-06-15T13:33:59.5760759Z             },
2026-06-15T13:33:59.5760859Z             {
2026-06-15T13:33:59.5761008Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5761126Z               "line": 66
2026-06-15T13:33:59.5761227Z             },
2026-06-15T13:33:59.5761331Z             {
2026-06-15T13:33:59.5761483Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T13:33:59.5761585Z               "line": 154
2026-06-15T13:33:59.5761689Z             },
2026-06-15T13:33:59.5761793Z             {
2026-06-15T13:33:59.5761933Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5762046Z               "line": 2162
2026-06-15T13:33:59.5762143Z             },
2026-06-15T13:33:59.5762248Z             {
2026-06-15T13:33:59.5762379Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5762489Z               "line": 2225
2026-06-15T13:33:59.5762584Z             },
2026-06-15T13:33:59.5762687Z             {
2026-06-15T13:33:59.5762825Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5762940Z               "line": 2235
2026-06-15T13:33:59.5763044Z             },
2026-06-15T13:33:59.5763140Z             {
2026-06-15T13:33:59.5763274Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5763387Z               "line": 2242
2026-06-15T13:33:59.5763484Z             },
2026-06-15T13:33:59.5763583Z             {
2026-06-15T13:33:59.5763707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5763822Z               "line": 2279
2026-06-15T13:33:59.5763926Z             },
2026-06-15T13:33:59.5764123Z             {
2026-06-15T13:33:59.5764260Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5764370Z               "line": 480
2026-06-15T13:33:59.5764471Z             },
2026-06-15T13:33:59.5764574Z             {
2026-06-15T13:33:59.5764704Z               "path": "crates/xtask/src/main.rs",
2026-06-15T13:33:59.5764810Z               "line": 494
2026-06-15T13:33:59.5764913Z             }
2026-06-15T13:33:59.5765012Z           ]
2026-06-15T13:33:59.5765118Z         },
2026-06-15T13:33:59.5765334Z         "int": {
2026-06-15T13:33:59.5765454Z           "complete": false,
2026-06-15T13:33:59.5765559Z           "evidence": []
2026-06-15T13:33:59.5765658Z         },
2026-06-15T13:33:59.5765765Z         "unit": {
2026-06-15T13:33:59.5765878Z           "complete": true,
2026-06-15T13:33:59.5765987Z           "evidence": [
2026-06-15T13:33:59.5766089Z             {
2026-06-15T13:33:59.5766245Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T13:33:59.5766370Z               "line": 476
2026-06-15T13:33:59.5766469Z             },
2026-06-15T13:33:59.5766564Z             {
2026-06-15T13:33:59.5766709Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T13:33:59.5766813Z               "line": 580
2026-06-15T13:33:59.5766923Z             },
2026-06-15T13:33:59.5767019Z             {
2026-06-15T13:33:59.5767156Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5767247Z               "line": 8853
2026-06-15T13:33:59.5767353Z             },
2026-06-15T13:33:59.5767451Z             {
2026-06-15T13:33:59.5767586Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5767696Z               "line": 8875
2026-06-15T13:33:59.5767789Z             }
2026-06-15T13:33:59.5767893Z           ]
2026-06-15T13:33:59.5767995Z         }
2026-06-15T13:33:59.5768095Z       }
2026-06-15T13:33:59.5768199Z     },
2026-06-15T13:33:59.5768295Z     {
2026-06-15T13:33:59.5768410Z       "id": "REQ-WHOAMI-1",
2026-06-15T13:33:59.5770234Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T13:33:59.5770470Z       "requiredStages": [
2026-06-15T13:33:59.5770638Z         "doc",
2026-06-15T13:33:59.5770737Z         "impl",
2026-06-15T13:33:59.5770848Z         "unit"
2026-06-15T13:33:59.5770938Z       ],
2026-06-15T13:33:59.5771038Z       "stages": {
2026-06-15T13:33:59.5771138Z         "doc": {
2026-06-15T13:33:59.5771258Z           "complete": true,
2026-06-15T13:33:59.5771371Z           "evidence": [
2026-06-15T13:33:59.5771468Z             {
2026-06-15T13:33:59.5771596Z               "path": "CONTEXT.md",
2026-06-15T13:33:59.5771700Z               "line": 651
2026-06-15T13:33:59.5771802Z             }
2026-06-15T13:33:59.5771906Z           ]
2026-06-15T13:33:59.5772011Z         },
2026-06-15T13:33:59.5772107Z         "impl": {
2026-06-15T13:33:59.5772216Z           "complete": true,
2026-06-15T13:33:59.5772330Z           "evidence": [
2026-06-15T13:33:59.5772427Z             {
2026-06-15T13:33:59.5772559Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5772673Z               "line": 2762
2026-06-15T13:33:59.5772779Z             },
2026-06-15T13:33:59.5772883Z             {
2026-06-15T13:33:59.5773011Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5773125Z               "line": 2774
2026-06-15T13:33:59.5773223Z             }
2026-06-15T13:33:59.5773323Z           ]
2026-06-15T13:33:59.5773419Z         },
2026-06-15T13:33:59.5773524Z         "int": {
2026-06-15T13:33:59.5773652Z           "complete": false,
2026-06-15T13:33:59.5773863Z           "evidence": []
2026-06-15T13:33:59.5773966Z         },
2026-06-15T13:33:59.5774068Z         "unit": {
2026-06-15T13:33:59.5774187Z           "complete": true,
2026-06-15T13:33:59.5774291Z           "evidence": [
2026-06-15T13:33:59.5774397Z             {
2026-06-15T13:33:59.5774530Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5774635Z               "line": 6430
2026-06-15T13:33:59.5774735Z             },
2026-06-15T13:33:59.5774834Z             {
2026-06-15T13:33:59.5774964Z               "path": "crates/spt/src/cli.rs",
2026-06-15T13:33:59.5775260Z               "line": 6446
2026-06-15T13:33:59.5775361Z             }
2026-06-15T13:33:59.5775464Z           ]
2026-06-15T13:33:59.5775568Z         }
2026-06-15T13:33:59.5775668Z       }
2026-06-15T13:33:59.5775767Z     }
2026-06-15T13:33:59.5775871Z   ],
2026-06-15T13:33:59.5775976Z   "findings": []
2026-06-15T13:33:59.5776073Z }
